- MOV A,#4DH ;处理前:0x4D(01001101)
- CALL INV_A ;处理后:0xB2(10110010)
- SJMP $
- INV_A: ;将A寄存器的二进制高低位颠倒 如0x01 处理后是0x80。
- PUSH 32 ;字节地址0x20(32)可以位寻址,压入堆栈保护现场。
- PUSH 33 ; ;字节地址0x21(33)也可以位寻址,存放进位标志C。
- MOV 33.0,C ;将进位标志C存入地址33的第0位,(最大7位),此处的.0不能省略,否则按位地址寻址的。
- MOV C,ACC.7 ;将A寄存器的第7位放入C中
- MOV 32.0,C ;将C位标志放入地址32的第0位,以此类推。
- MOV C,ACC.6
- MOV 32.1,C
- MOV C,ACC.5
- MOV 32.2,C
- MOV C,ACC.4
- MOV 32.3,C
- MOV C,ACC.3
- MOV 32.4,C
- MOV C,ACC.2
- MOV 32.5,C
- MOV C,ACC.1
- MOV 32.6,C
- MOV C,ACC.0
- MOV 32.7,C
- MOV A,32 ;地址32的值送A寄存器。
- MOV C,33.0 ;将地址33的第0位放入进位标志C
- POP 33 ;地址33是后压入堆栈的,所以先弹出。
- POP 32 ;地址32的堆栈弹出,恢复现场。
- RET
- END
复制代码
|