📄 sum.asm
字号:
.386p
Seg_Data SEGMENT use16
a DW 1968
b DW 2113
c DW ?
Plus DB "a+b=$"
Result DB 5 dup (?),'$'
Seg_Data ENDS
Seg_Stack SEGMENT use16
DW 512 dup (?)
Top label WORD
Seg_Stack ENDS
Seg_Code SEGMENT use16
main proc far
Assume cs:Seg_Code , ds:Seg_Data , ss:Seg_Stack
Start:
mov ax , Seg_Stack
mov ss , ax
mov sp , offset Top
mov ax , Seg_Data
mov ds , ax
mov es , ax
;=========================================
push a
push b
call Sum
mov c,ax
lea bx,Result
mov ax,c
call BTOD
mov dx,0
mov ah,2
int 10h
mov ah,9
lea dx, Plus
int 21h
cld
mov al,'0'
lea di,Result
repz scasb
dec di
mov ah,9
mov dx,di
int 21h
;=========================================
mov ax,4c00h
int 21h
main Endp
Sum proc near
push bp
mov bp,sp
sub sp,2
mov ax,[bp+4]
add ax,[bp+6]
mov sp,bp
pop bp
ret 4
Sum endp
BTOD proc near
mov si,5
mov cx,10
store:
xor dx,dx
div cx
add dl,30h
dec si
mov [bx][si],dl
or si,si
jnz store
ret
BTOD endp
Seg_Code ENDS
End Start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -