8051程序减去两个8位数字
在这里,我们将看到如何使用该微控制器减去两个8位数字。寄存器A(累加器)在操作中用作一个操作数。在不同的寄存器组中有七个寄存器R0–R7。我们可以将它们中的任何一个用作第二个操作数。
我们在位置20H和21H取两个数字73H和BDH,减去后的结果将存储在位置30H和31H。
。
。
。
。
。
。
程序
MOVR0,#20H;set source address 20H to R0
MOVR1,#30H;set destination address 30H to R1
MOVA,@R0;take the value from source to register A
MOVR5,A; Move the value from A to R5
MOVR4,#00H; Clear register R4 to store borrow
INCR0; Point to the next location
MOVA,@R0; take the value from source to register A
MOVR3,A; store second byte
MOVA,R5;get back the first operand
SUBBA,R3; Subtract R3 from A
JNCSAVE
INCR4; Increment R4 to get borrow
MOVB,R4;Get borrow to register B
MOV@R1,B; Store the borrow first
INCR1; Increase R1 to point to the next address
SAVE: MOV@R1,A; Store the result
HALT: SJMP HALT ;Stop the program因此,通过减去73H–BDH,结果将为B6H。在位置30H,我们将得到01H。这表明结果是否定的。从结果B6H获得实际值,我们必须执行2的补码运算。执行2的补码后,结果将为-4AH。
输出结果
。
。
。
。
。
。
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西