汇编程序中负数怎么用数码管显示
发布网友
发布时间:2023-11-11 19:16
我来回答
共3个回答
热心网友
时间:2024-06-29 15:05
这里面,只有显示两位数的程序,要想显示“-”,必须再加一位。
如果是四位显示器,可以先考虑把最左边的当做符号位。
用两个数字相减,Cy=0时,把符号位显示空白。
Cy=1时,把符号位显示“-”,再把数字反减,再去显示即可。
--
符号位,应该紧贴着数值位。
所以,应该判断百位、十位为零否,再把“-”显示在合适的位置上。
热心网友
时间:2024-06-29 15:05
可以在前面做差比较时正负值用一个变量来标志,再后面处理完十位显示后继续做此变量的判断,根据变量的1或0值来驱动第三个数码管当中一横的亮与灭。
热心网友
时间:2024-06-29 15:06
;算法介绍:由于正负数的叛法主要是看最高位即符号位,,而由于是字节型数据,所以可以用TEST指令将操作数与10000000B来判断是正是负,,最后利用循环一次性搞完,,,,
;程序例如下:
DATA SEGMENT
NUM EQU 100
DATASTR DB NUM DUP(?)
MINUS DB 100 DUP(?)
PLUS DB 100 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,0
MOV CX,NUM
L1: MOV AL,DATASTR[SI]
TEST AL,10000000B
JZ NEXT1
MOV MINUS[SI],AL
JMP PASS1
NEXT1: MOV PLUS[SI],AL
PASS1: INC SI
LOOP L1
MOV AH,4CH
INT 21H
CODE ENDS
END START