📄 text2.asm
字号:
JISUAN: MOV A,TEMP5
JNB ACC.7,ZHENG
MOV A,TEMP4
CPL A
INC A
MOV TEMP4,A
ANL A,#0FH
LCALL MULD
LCALL HB2
MOV A,R4
ANL A,#0F0H
SWAP A
MOV TEMP7,A
MOV A,TEMP4
ANL A,#0FFH
JZ XX
MOV A,TEMP5
CPL A
SJMP YY
XX: MOV A,TEMP5
CPL A
INC A
YY: ANL A,#0FH
SWAP A
MOV R5,A
MOV A,TEMP4
ANL A,#0F0H
SWAP A
ORL A,R5
MOV TEMP6,A
LCALL HBCD
MOV TEMP0,#0BH
RET
ZHENG: MOV A,TEMP4
ANL A,#0FH
LCALL MULD
LCALL HB2
MOV A,R4
ANL A,#0F0H
SWAP A
MOV TEMP7,A
MOV A,TEMP4
ANL A,#0F0H
SWAP A
MOV R5,A
MOV A,TEMP5
ANL A,#0FH
SWAP A
ORL A,R5
MOV TEMP6,A
LCALL HBCD
MOV A,TEMP1
MOV TEMP0,A
RET
JISUAN: MOV A,TEMP4
ANL A,#0FH
LCALL MULD
LCALL HB2
MOV A,R4
ANL A,#0F0H
SWAP A
MOV TEMP7,A
MOV A,TEMP4
ANL A,#0F0H ;保留温度低字节的高四位
SWAP A ;把高四位移到低四位存放
MOV R5,A ;暂时存放在工作寄存器R5里
MOV A,TEMP5 ;取出温度的高字节
ANL A,#0FH ;保留低四位
SWAP A ;把低四位移到高四位存放
ORL A,R5
MOV TEMP6,A ;保存温度值到TEMP6
MOV A,TEMP5 ;再次取出温度的高字节
ANL A,#0F8H ;保留高5位
JNB ACC.7,ZHENG ;判断最高位是否为0,为0则表明温度是正值,转到ZHENG执行
MOV A,TEMP7
CPL A
INC A
MOV A,TEMP6 ;否则温度值为负,为负则要求其补码
CPL A ;将保存在TEMP6的温度值取反
MOV R5,TEMP7
CJNE R5,#00H,XX
INC A ;再加1求出其补码
XX: MOV TEMP0,#0BH ;将"-"号的段选值存到符号位
MOV TEMP6,A ;保存补码到TEMP6
LCALL HBCD
RET
ZHENG: LCALL HBCD
MOV A,TEMP1
MOV TEMP0,A ;
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -