所在位置:主页 > 程序语言 > 一个汇编语言小程序问题,请大神求救,题目要求是从键盘输入一个字符,判断是否是0-9的数字,并十进制输出

一个汇编语言小程序问题,请大神求救,题目要求是从键盘输入一个字符,判断是否是0-9的数字,并十进制输出

发布时间:2023-11-15 22:24来源:www.sf1369.com作者:宇宇

一、一个汇编语言小程序问题,请大神求救,题目要求是从键盘输入一个字符,判断是否是0-9的数字,并十进制输出

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 ;处理错误输入,并且要求用户重新输入

二、51单片机汇编语言编程99计数器的问题

纯粹看程序没问题~~

但是直接把0,1.。9给P0口哪能显示出来?

要用表把:

TAB: DB 0X3F,......;共阴或共阳段码表

然后用 MOVC A,@A+DPTR 查表

在送给P0显示吧

三、汇编语言:每一次中断,数码管显示数值加一,逐次增加到9,此时中断失效,数码管显示保持99,蜂鸣响起

代码已经编号,已通过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 ;正确