发布时间:2023-11-15 22:24来源:www.sf1369.com作者:宇宇
MOV AH,01H
INT 21H ;输入
CMP AL,'0'
JB FALSE ;筛选数字
CMP AL,'9'
JA FALSE
;-----------------------
NO_FALSE:
MOV CL,2
SHL AL,CL
MOV RESULT,AL ;对符合条件的数字左移4位,并把结果存放在RESULT变量中
MOV AH,09H
LEA DX,RESULT
INT 21H ;输出结果
MOV AH,4CH
INT 21H
;-----------------------
FALSE:
MOV AH,09H
LEA DX,STR2
INT 21H
JMP AGAIN ;处理错误输入,并且要求用户重新输入
纯粹看程序没问题~~
但是直接把0,1.。9给P0口哪能显示出来?
要用表把:
TAB: DB 0X3F,......;共阴或共阳段码表
然后用 MOVC A,@A+DPTR 查表
在送给P0显示吧
代码已经编号,已通过protues仿真。你可以查看一下附件。不过我用的是四位的数码管。
有问题请追问。
按键中断.zip大小:111.61K
已经过百度安全检测,放心下载
点击下载
1、MOV BL,CX ;错。操作数类型不匹配,BL是8位寄存器,CX是16位寄存器
2、MOV [BX],[DI] ;错。不允许两个操作数都是存储单元
3、MOV CX,AX ;正确
4、MUL 10H ;错。乘法指令不允许立即数作乘数
5、CMP AX,1234H ;正确