彙編實現「比較三個數,取中間」

2021-07-09 04:28:55 字數 1138 閱讀 8472

實際上就是個排序題,彙編的分支程式,詳見和**。

**在32位win7 masm5下編譯通過

data segment

x db 4

y db 3

z db 6

data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov ds,ax

;比較xyz,取中間的數顯示

xor cx,cx;清零ch,cl,dh

xor dh,dh

mov cl,x

;存放資料

mov ch,y

mov dh,z

cmp cl,ch;比較x y

jae cmp1

cmp ch,dh;比較y z

jae c***

jmp outy

cmp1:

cmp cl,dh;比較x z

jae cmp2

jmp outx

outx:

mov dl,'x'

;列印x

mov ah,02h

int 21h

jmp done

cmp2:

cmp dh,ch;比較z y

jae outz

jmp outy

c***:

cmp cl,dh;比較x z

jae outx

jmp outz

outz:

mov ah,02h;列印z

mov dl,'z'

int 21h

jmp done

outy:

mov dl,'y'

;列印y

mov ah,02h

int 21h

done:

mov ah,4ch;結束程式返回作業系統

int 21h

code ends

end start

ps:第一次使用markdown編輯器,感覺挺棒!

三個數比較大

對於正常人來說,數值的比較是秒殺的,我們能一眼判斷出數字的大小,而這一過程中我們會比較數值本身的符號 數值的位數 數值每一位的值,我們潛意識中不會去改變量值的表象載體和內在含義。而對於計算機來說,它們的比較數值的方法和我們有點差異,它們在比較的過程中會改變量值的表象載體和內在含義,下面這一道題是其中...

三個數比較大小

比較大小 輸入 3 個整數,按從小到大的順序輸出。試編寫相應程式。怎麼比較大小,常見的演算法有冒泡 選擇 排序 二分查詢法,這些我們這裡都不說,三個數比較大小用不到演算法,用什麼寫呢?if else或者if分析 就是找到三個數中最小的數,最比較另外兩個數 我第一次寫這個題,用的是if else寫的,...

C語言小結 取三個數中的中間數

今天遇到乙個問題,求三個數中的中間數。我的思路是 先求兩個數中的最小數,然後把這個最小數和另乙個數求最大數,這樣就取出了中間數。求最大數和最小數的巨集定義如下 define max a,b a b a b define min a,b a b a b 然後在 中實現求中間數如下 angletemp ...