exam803.asm

来自「我在汇编课上完成的一些作业(上机常见习题)和汇编课本上的几个例题」· 汇编 代码 · 共 64 行

ASM
64
字号
;首地址为Y的存储区有2个无符号123和321,试编程求它们的和,并
;将其值存入total单元,完成之后和转换成十六进制数,并在屏幕
;止显示出来。
data segment
     y dw 123,321
     total dw ?
data ends
code segment
     assume cs:code, ds:data
main proc far
     push ds
     mov ax, 0
     push ax
     mov ax, data
     mov ds, ax
     mov si, offset y
     call sub1        ;调用SUB1子程序,将数据转换成二进制数
     ret
main endp
sub1 proc near
     push dx
     push bx
     push ax
     push si
     push cx
     mov ax, [si]
     add ax, [si+2]
     mov total, ax
     call sub2       ;调用SUB2子程序,将数据转换成十六进制数
     pop cx
     pop si
     pop ax
     pop bx
     pop dx
     ret
sub1 endp
sub2 proc near
     push bx
     push ax
     push cx
     push dx
     mov bx, total
     mov ch, 4
lp1: mov cl,4
     rol bx, cl
     mov al, bl
     and al, 0fh
     add al, 30h
     cmp al, 3ah
     jl lp2
     add al, 07h
lp2: mov dl, al
     mov ah, 02h
     int 21h
     dec ch
     jnz lp1
     pop dx
     pop cx
     pop ax
     pop bx
     ret
sub2 endp
code ends
     end main

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?