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的值来简化了代码。

     

  • 相关阅读:
    【HDU 1007】Quoit Design
    【BZOJ 4516】【SDOI 2016】生成魔咒
    【SPOJ 1812】Longest Common Substring II
    NOI2014 全国互测Round2
    1231: [Usaco2008 Nov]mixup2 混乱的奶牛
    3529: [Sdoi2014]数表
    2693: jzptab
    2565: 最长双回文串
    1562: [NOI2009]变换序列
    1965: [Ahoi2005]SHUFFLE 洗牌
  • 原文地址:https://www.cnblogs.com/masami/p/10098506.html
Copyright © 2011-2022 走看看