我目前在學習彙編語言。我已經能夠創建一個快速簡短的功能,將兩個數字從最小值切換到最大值。我正在用三個數字來應用相同的基礎基礎,但每次我進行比較時,都會進入無限循環。我通過使用*60
來聲明此功能。我如何正確地將三個數字從最小到最大排序?另外,有沒有一種方法可以讓同一個函數執行兩個和三個數字的排序,而無需進行任何其他更改?對三個數字中的最大值進行排序
幾個彙編程序的語法略有變化。 HERE是我目前使用的教育程序集小人電腦模擬器的鏈接。
兩個數字工作交換:
INP //Input x number
STO 99 //Store x number
INP //Input y number
STO 98 //Store y number
BR 60 //Jump to function *60
HLT //End run
*60 //Number SWAP function
LDA 99 //Load x
STO 87 //Move x to mailbox 87
LDA 98 //Load y
STO 86 //Move y to mailbox 86
SUB 87 //Subtract y - x
BRP 71 //Branch to line 71 if result is positive
LDA 86 //SUB 87 gives a negative result- then y is smallest number. Load y
OUT //Display y
LDA 87 //Load x- the greater number.
OUT //Display x
HLT //End here since y > x
LDA 87 //BRP 71 branches here- then x is smallest number
OUT //Display x
LDA 86 //y is the greater number
OUT * //display y
你碰巧知道我是否可以將一個函數'內這兩個循環* 60'像我的'交換two'例子這樣,如果有需要訂購,將跳轉到函數,然後順序和跳回來繼續比較第二個數字和第三個數字? – CodingWonders90 2013-03-06 04:05:35