📄 mds.asm
字号:
DATA_A_H DATA 40H
DATA_A_L DATA 41H
DATA_B_H EQU 42H
DATA_B_COUNT EQU 4
MDS: CLR F0 ;结果符号初始化
MOV A,DATA_A_H ;判断第二操作数的符号(数据A的高字节)
JNB ACC.7,MDS1 ;为正,不必处理
CPL F0 ;为负,结果符号取反
XCH A,DATA_A_L ;第二操作数取补,得到其绝对值
CPL A
ADD A,#1
XCH A,DATA_A_L
CPL A
ADDC A,#0
MOV DATA_A_H,A
MDS1: MOV R0,#DATA_B_H
MOV R6,#DATA_B_COUNT ;判断第一操作数或运算结果的符号
MOV A,@R0
JNB ACC.7,MDS3 ;为正,不必处理
DEC R6
MOV A,R0
ADD A,R6
MOV R0,A
CPL F0 ;为负,结果符号取反
MOV A,@R0
CPL A
ADD A,#1
MOV @R0,A
DEC R0
MDS2: MOV A,@R0 ;求第一操作数的绝对值或运算结果的补码
CPL A
ADDC A,#0
MOV @R0,A
DEC R0
DJNZ R6,MDS2
MDS3: CLR OV ;运算成功
SJMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -