zoukankan      html  css  js  c++  java
  • 实验九

    实验1:

    代码补全:

    ; 在屏幕上输出内存单元中的十进制两位数
    assume cs:code, ds:data
    data segment
         db 12
         db 0,0  ; 前一个字节用于保存商,后一个字节用于保存余数
    data ends
    code segment
    start:
          mov ax,data
          mov ds,ax      ; 补全指令,使得ds <-- data段地址
          
          mov ah,0
          mov al,ds:[0]   ; ax <-- data段字节单元的被除数12
          mov bl,10
          div bl
          mov  ds:[1],al    ; 补全代码,让商保存到data段注释中指定的单元
          mov  ds:[2],ah    ; 补全代码,让余数保存到data段注释中指定的单元
    
          mov ah,2
          mov dl,ds:[1]   ; 补全代码,使得dl <-- data段中保存的商的字节单元数值
          add dl,30h       ; 补全代码,使得dl中的数值转换为数字字符
          int 21h
    
          mov ah,2
          mov dl,ds:[2]     ; 补全代码,使得dl <-- data段中保存余数的字节单元数值
          add dl,30h        ; 补全代码,使得dl中的数值转换为数字字符      
          int 21h
    
          mov ax,4c00h
          int 21h
    code ends
    end start
    

      运行结果:在屏幕上显示12成功

    实验2:

    assume cs:code, ds:data
    data segment
         db 12,35,96,55,67
    data ends
    code segment
    start:
    mov ax,data
    mov ds,ax
    mov cx,5
    mov bx,0
    s: mov ax,0
    mov dl,10
    mov al,[bx]
    div dl
    mov dl,al
    mov dh,ah
    
    mov ah,2
    add dl,30h
    int 21h
    
    mov ah,2
    mov dl,dh
    add dl,30h
    int 21h
    
    mov ah,2
    mov dl,32
    int 21h
    
    inc bx
    loop s
          
          mov ax,4c00h
          int 21h
    

      实验结果确实打印出数字(空格的ascll值为32)

    实验3:

    assume ds:data, cs:code
    data segment
           db 'welcome to masm!'  
           db 2H,24H,71H         
    data ends
    
    code segment
    start:mov ax,data
            mov ds,ax            
            
            mov ax,0b800H
            mov es,ax           
            mov cx,3 
            mov si,06e0h    
            mov bx,0  
    
    s1: push cx  
          mov cx,16     
          mov di,0  
    
    s2: mov ax,0
          mov al,[di]   
          mov ah,[bx+16]
    
          mov es:[si],al
          inc si
          mov es:[si],ah
          inc si
          inc di
          loop s2
          
          pop cx
          inc bx
          add si,0080h
          loop s1
                   
          mov ax,4c00h
          int 21h
    code ends
    end start
    

      最终结果

     

    (fei chang kai xin)

    总结:对于字符的输出屏幕学会了新的 利用mov al 2等的语句输出屏幕,且掌握了div方法使字节数据变为字符输出

              了解了80*25缓冲彩色字符模式的内容,成功用两个循环嵌套,且使用栈存入cx的值来简化了代码。

     

  • 相关阅读:
    洛谷P4548 [CTSC2006]歌唱王国(概率生成函数)
    洛谷P3643 [APIO2016]划艇(组合数学)
    洛谷T46780 ZJL 的妹子序列(生成函数)
    洛谷P4220 [WC2018]通道(边分治+虚树)
    洛谷P4931 情侣?给我烧了!(加强版)(组合数学)
    洛谷P4451 [国家集训队]整数的lqp拆分(生成函数)
    thinkphp5.0 页面缓存
    thinkphp5.0 cache数据缓存机制
    laravel 视图调用方法并传递参数
    laravel 安装配置前准备
  • 原文地址:https://www.cnblogs.com/masami/p/10098506.html
Copyright © 2011-2022 走看看