请大家帮我看个汇编程序(8086)

来源:百度知道 编辑:UC知道 时间:2024/05/15 03:57:27
sseg segment
stk db 20 dup(?)
sseg ends

dseg segment
dax dw 0
day dw 0
dseg ends

cseg segment
assume ss:sseg,ds:dseg,cs:cseg
start:mov ax,dseg
mov ds,ax
mov ax,sseg
mov ss,ax
mov sp,length stk
mov ah,1
int 21h
xor ah,ah
mov dax,ax
cmp ax,0
jne loop1
mov day,1000
mov dl,'+'
mov ah,2h
int 21h
mov dl,'1'
mov ah,2
int 21h
mov dl,'0'
mov ah,2
int 21h
mov dl,'0'
mov ah,2
int 21h
mov dl,'0'
mov ah,2
int 21h
jmp over

loop1:cmp ax,1
jne loop2
mov day,3
mov dl,'+'
mov ah,2
int 21h
mov dl,'3'
mov ah,2h<

;符合程序要求的目的:
;输入0时,输出+1000,输入1时,输出+3
;输入其它数时,输出这个数本身,同时在这个前面输出+
;
cseg segment
assume cs:cseg,ds:cseg
start:
mov ax,cseg
mov ds,ax
mov ah,1
int 21h
mov dl,al
mov al,'+'
mov ah,0eh
int 10h
cmp dl,'0'
jnz Q1
lea dx,dax
mov ah,9
int 21h
jmp over
Q1:cmp dl,'1'
jnz Q2
mov dl,'3'
Q2:mov ah,2
int 21h
Q4:
over:
mov ah,1
int 21h
mov ah,4ch
int 21h

dax db '1000$'
cseg ends
end start