我必須使用暫存器從 3 個值中計算最大值,并將最大值存盤在AL. 需要使用跳轉和比較。
例如,我寫了如何從 2 個數字確定最大值,但我不能使用 3。
mov bl,1
mov cl,2
cmp bl,cl
jg label1 ;jump if greater
mov al,bl ;al keeps the maximum
jmp stop
label1: mov al,bl
stop:nop;
我應該AL=max(AL,BL,CL)在這個模型之后做。
uj5u.com熱心網友回復:
目前,您的代碼將始終報告BL最大!該行mov al,bl ;al keeps the maximum應為mov al, cl。
對于AL=max(AL,BL,CL),首先找到的最大AL和BL,并保持AL那就是無論如何都要修改,因為它會是這個結果。然后找到可能新的AL和CL產生最終的之間的最大值AL:
cmp al, bl
jg OK1
mov al, bl
OK1:
cmp al, cl
jg OK2
mov al, cl
OK2:
; AL is max(AL,BL,CL)
如果這很重要,這種方式會注冊BL并且CL不會被修改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/352220.html
