发表于:2006/2/7 13:50:00
#0楼
要求是(1)编写程序,进行两个16位数的减法:6FDH—13B4H。结果存至内部RAM的30H和31H,30H存差的低8位。
(2)将DPTR减1。
程序一:
MOV DPTR #6FDH;
MOV 10H DPL;
MOV 11H DPH;
MOV DPTR #13B4H;
MOV 20H DPL;
MOV 21H DPH;
MOV A 11H;
CLR C;
SUBB A 21H;
MOV 31H A;
MOV A 10H;
CLR C;
SUBB A 20H;
MOV 30H A;
另外我认为这个程序中的13B4H是不是也可以理解为负数,如果可以那位帮我看一下程序应该怎么改才好,小弟先谢谢了啊!!!
程序二:
CLR C;
TABLE: PUSH DPH;
PUSH DPL;
JC TABLE1;
POP DPL;
PUSH DPL;
POP A;
DEC A;
JC TABLE;
PUSH A;
POP DPL;
POP DPH;
TABLE1:POP DPL;
POP DPH;
PUSH DPH;
POP A;
DEC A;
PUSH A;
POP DPH;
PUSH DPH;
PUSH DPL;
POP A;
ADD A #FFH;
DEC A;
PUSH A;
POP DPL;
POP DPH;
水平有限还请各位多多指点批评!!小弟先谢谢了!!!
(2)将DPTR减1。
程序一:
MOV DPTR #6FDH;
MOV 10H DPL;
MOV 11H DPH;
MOV DPTR #13B4H;
MOV 20H DPL;
MOV 21H DPH;
MOV A 11H;
CLR C;
SUBB A 21H;
MOV 31H A;
MOV A 10H;
CLR C;
SUBB A 20H;
MOV 30H A;
另外我认为这个程序中的13B4H是不是也可以理解为负数,如果可以那位帮我看一下程序应该怎么改才好,小弟先谢谢了啊!!!
程序二:
CLR C;
TABLE: PUSH DPH;
PUSH DPL;
JC TABLE1;
POP DPL;
PUSH DPL;
POP A;
DEC A;
JC TABLE;
PUSH A;
POP DPL;
POP DPH;
TABLE1:POP DPL;
POP DPH;
PUSH DPH;
POP A;
DEC A;
PUSH A;
POP DPH;
PUSH DPH;
PUSH DPL;
POP A;
ADD A #FFH;
DEC A;
PUSH A;
POP DPL;
POP DPH;
水平有限还请各位多多指点批评!!小弟先谢谢了!!!