實際上就是個排序題,彙編的分支程式,詳見和**。
**在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 ...