8085程式:求兩個給定位元組的最大公約數(HCF)


在這個程式中,我們將學習如何使用8085查詢兩個數字的最大公約數(HCF)或最大公因數(GCD)。

問題陳述

編寫8085組合語言程式,查詢儲存在記憶體位置8000H和8001H的兩個數字的最大公約數(HCF)。

討論

這個問題透過歐幾里得演算法來求解HCF。這個演算法非常簡單。演算法步驟如下:

  • 如果第一個數字和第二個數字相同,則

    • 跳轉到步驟3。

否則,如果第一個數字 < 第二個數字,則


    • 交換第一個數字和第二個數字。
  • 第一個數字 <- 第一個數字 – 第二個數字;跳轉到步驟1

  • 顯示第一個數字作為結果

值儲存在8000H和8001H位置,結果將儲存在8050H位置。

輸入

第一個輸入

地址資料
......
80008000H
800169
......
80500DH
......


第二個輸入

地址資料
......
800025
800135
......
805001
......

流程圖

程式

地址十六進位制程式碼標籤助記符註釋
F000H21, 00, 80
LXI H,8000H指向第一個數字
F003H7E
MOV A, M將第一個數字載入到累加器(Acc)
F004H23
INX H指向下一個位置
F005H46
MOV B, M載入第二個數字
F006HB8LOOP:CMP B比較B和A
F007HCA 17 F0
JZ STORE當A和B相同時,儲存結果
F00AHDA 11 F0
JC EXG如果B > A,則交換B和A
F00DH90
SUB B如果B < A,則從A中減去B
F00EHC3 06 F0
JMP LOOP跳轉到LOOP
F011H48EXG:MOV C,B將B載入到C
F012H47
MOV B, A將A移動到B
F013H79
MOV A, C將C移動到A
F014HC3 06 F0
JMP LOOP跳轉到LOOP
F017H32, 50, 80STORE:STA 8050H將值儲存到記憶體中
F01AH76
HLT終止程式


輸出

第一個輸出

地址資料
......
80500DH
......


第二個輸出

地址資料
......
805001
......

更新於:2019年7月30日

2K+ 次檢視

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.