8051程式用於除兩個8位數


現在我們將看到另一個算術運算。除法運算,使用8051微控制器除兩個8位數。在這個運算中將使用暫存器A和B。除法不能使用其他暫存器。除法的結果有兩個部分。商部分和餘數部分。暫存器A將儲存商,暫存器B將儲存餘數。

我們在20H和21H位置取兩個數字0EH和03H,除法後結果將儲存在30H和31H位置。

地址



.
.
.
20H
0EH
21H
03H


.
.
.
30H
00H
31H
00H


.
.
.


程式

MOV R0, #20H;set source address 20H to R0
MOV R1, #30H;set destination address 30H to R1

MOV A, @R0;take the first operand from source to register A
INC R0; Point to the next location
MOV B, @R0; take the second operand from source to register B

DIV AB ; Divide A by B

MOV @R1, A; Store Quotient to 30H
INC R1; Increase R1 to point to the next location
MOV @R1, B; Store Remainder to 31H
HALT:   SJMP HALT ;Stop the program

8051提供了DIV AB指令。透過使用此指令,可以完成除法。在其他一些微處理器(如8085)中,沒有DIV指令。在那個微處理器中,我們需要使用重複減法運算來得到除法的結果。

當分母為00H時,溢位標誌OV將為1。否則,除法的溢位標誌為0。

輸出

地址



.
.
.
20H
0EH
21H
03H


.
.
.
30H
04H
31H
02H


.
.
.

更新於: 2020年6月27日

10K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告