8051 程序以叠加两个 8 位数
英特尔 8051 是一款 8 位微控制器。它拥有许多强大的指令和 IO 访问技术。本节我们将了解如何使用 8051 进行其中一项最简单的编程。
在这里我们将使用此微控制器叠加两个 8 位数。寄存器 A(累加器)用作操作中的一种操作数。在不同的寄存器库中有七个寄存器 R0 – R7。我们可以使用其中的任何一个作为第二个操作数。
我们在位置 20H 和 21H 上取两个数字 5FH 和 D8H,在叠加它们之后,结果将存储在位置 30H 和 31H。
地址 | 值 |
---|---|
. . . | |
20H | 5FH |
21H | D8H |
. . . | |
30H | 00H |
31H | 00H |
. . . |
程序
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 carry INCR0; Point to the next location MOVA,@R0; take the value from source to register A ADDA,R5;Add R5 with A and store to register A JNC SAVE INCR4; Increment R4 to get carry MOVB,R4;Get carry to register B MOV@R1,B; Store the carry first INCR1; Increase R1 to point to the next address SAVE: MOV@R1,A;Store the result HALT: SJMP HALT ;Stop the program
因此,通过叠加 5FH + D8H,结果为 137H。01H 将存储在 30H,37 存储在 31H。
输出
地址 | 值 |
---|---|
. . . | |
20H | 5FH |
21H | D8H |
. . . | |
30H | 01H |
31H | 37H |
. . . |
广告