汇编设计 实验9

任务一:完成在屏幕上输出内存单元中的十进制两位数

代码:

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,'0'      ; 补全代码,使得dl中的数值转换为数字字符
      int 21h
      mov ah,2
      mov dl,ds:[2]     ; 补全代码,使得dl <-- data段中保存余数的字节单元数值
      add dl,'0'       ; 补全代码,使得dl中的数值转换为数字字符     
      int 21h
      mov ax,4c00h
      int 21h
code ends
end start
结果运行为12

任务二:完成在屏幕上输出 data 段定义的 5 个十进制两位数,数据和数据之间以空格间隔

代码:

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

 任务三:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcome to masm!'。

代码:

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            ;字符串及属性值所在段的段地址送入ds
       
        mov ax,0b800H
        mov es,ax            ;80×25彩色字符模式显示缓冲区段地址送入es
       
        mov bx,0
        mov bp,16
        mov di,071ch
        mov cx,3
s:      mov bx,cx
        mov si,0
        mov cx,16
s0:    mov ax,0
        mov al,[si]
        mov ah,[bp]
        mov es:[di],ax
        inc si
        add di,2h
        loop s0
       
        add di,80h
        mov cx,bx
        inc bp
        loop s
       
        mov ax,4c00h
        int 21h
code ends
end start

总结:学会了如何将字符表示在屏幕上,了解了新的汇编指令div,也学习到了更加灵活的地址表示方法,如:[si]、[bp]

等 

猜你喜欢

转载自www.cnblogs.com/williamxin/p/10082629.html
今日推荐