编写8086/8088汇编语言源程序,在屏幕上显示提示信息“please input two numbers(1-9):”。

编写8086/8088汇编语言源程序,在屏幕上显示提示信息“please input two numbers(1-9):”。然后从键盘接收一个1到9之间的数字,如果输入的数字为1到9之间的数字,则在屏幕上换行显示:“The sum is:x ”(x为所键盘输入的1到9之间的数),反之如果键盘上输入的不是1到9之间的数,则屏幕上显示:“ Input error!”

第1个回答  2012-05-01
很久没碰汇编了,但总算满足了你的要求!
;输入1-9之间的数字,正确输入则在下一行输出此数字,输入错误提示错误并要求
;重新输入,直至输入正确程序才结束!
assume cs:code,ds:data,ss:stack
data segment
input db 'please input two numbers(1-9):','$'
show db 'The sum is:','$'
error db 'input error!,try again:','$'
num db ?
data ends
stack segment
dw 8 dup(?)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov bx,offset input
mov ax,0b000h
mov es,ax
mov di,8000h+160+22
lea dx,input
mov ah,9
int 21h
r:mov ah,0 ;r标号为输入错误跳转至此处重新输入判断
int 16h
mov num,al
call set
mov ax,4c00h
int 21h
set:cmp al,39h
ja err ;判断输入如果大于9提示错误
cmp al,30h ;判断输入是否大于0,如果大于就输出
ja s
jmp short err
s:mov ah,2
mov bh,0
mov dh,1
mov dl,0
int 10h
lea dx,show
mov ah,9
int 21h
mov al,num
mov es:[di],al
ret
err:lea dx,error
mov ah,9
int 21h
jmp short r
code ends
end start本回答被提问者采纳
相似回答
大家正在搜