| 
 
| 本帖最后由 一颗心的思考 于 2015-2-4 17:05 编辑 
 复习汇编下的51,遇见了一个问题,强迫症犯了,老想知道为什么是这样:
 首先对低字节取补,然后判其结果是否为全“ 0”。 若是,则高字节取补,
 否则高字节取反。
 代码如下:
 START: MOV R0, #addr1              ;原码低字节地址送 R0
 MOV R1, #addr2              ;补码低字节地址送 R1
 MOV A, @R0                  ;原码低字节送 A
 CPL A                        ; A 内容取补
 INC A
 MOV @R1, A                  ;存补码低字节
 INC R0                       ;调整地址,指向下一单元
 INC R1
 JZ ZERO                      ;( A) =0 时转 ZERO
 MOV A, @R0                  ;原码高字节送 A
 CPL A
 MOV @R1, A                  ;高字节反码存入 addr2+1 单元
 SJMP LOOP1
 ZERO: MOV A, @R0                 ;高字节取补存入 addr2+1 单元
 CPL A
 INC A
 MOV @R1, A
 LOOP1: RET
 
 
 
 
 不明白的地方是对高字节求补码的方法:“判其结果是否为全“ 0”。 若是,则高字节取补,
 否则高字节取反。”
 
 
 | 
 |