第11講講了剩下兩個減法指令: neg 和 cmp
neg op 對op進行求補,然後將結果送入op,運算元可以是通用暫存器和儲存單元。當op為8位-128或16位-32768時,結果為它自身。當op為0時,cf位為0,其他時候都為1。neg操作其實是 op = 0 - op。
cmp op1, op2 比較操作,用op1 - op2, 與sub規則相同,不同之處在於不把結果送回op1,根據標誌位來判斷比較的結果。zf = 0時兩運算元相等,否則不相等。當不相等時,如果是無符號數,根據cf位來判斷大小;如果是有符號數,根據of和sf來判斷大小。有符號數不相等時怎麼判斷?如果of = 0,無溢位,sf = 0時op1 > op2,否則op1 < op2。如果op = 1,有溢位,sf = 0時,op1 < op2, 此時,op1為負, op2為正,sf = 1時,op1 > op2,此時, op1為正, op2為負。
剩下時間講加減法的應用。
例: 已知 字儲存單元 x, y, z, 將 x + (y + z – 25h) 送入z中
mov ax, y
add ax, z
sub ax, 25h
add ax, x
mov z, ax
例: 已知雙字儲存單元 x, y, z, 將 x + (y + z – 25h) 送入z中
mov ax, y
mov dx, y + 2
add ax, z
adc dx, z + 2
sub ax, 25h
sbb dx, 0
add ax, x
adc dx, x +2
mov z, ax
mov z+2, dx
彙編基礎學習11
文章 http www.mcany.cn article 286.htm 博主 沒落的殘陽 這節來學習下loop迴圈指令。我們高階語言的堆疊分配初始化可是靠它了呵呵。首先我們來看下它的指令格式。loop 標號 ecx不為零時跳轉至標號迴圈.標號只是寫匯程式設計序時用來表示乙個記憶體位址的。例如 to...
彙編學習筆記
1 cpu的指令集 cpu內整合了不同功能的電路模組 如 加 減法器,比較器 正常工作所對應的不同高低電平 數電知識 組合語言是人對機器指令的語言表述。2 cpu對硬體的控制實際是訪問其記憶體 如顯示卡上整合有ram 視訊記憶體 和rom 裝有唯讀bios 源 被編譯成機器 後被載入記憶體。3 程式...
彙編學習筆記
彙編檔案為 s 檔案 因為c程式執行需要棧,設定好棧了之後就可以呼叫c程式了 bl delay 呼叫delay 暫存器移位 mov r0,r1,lsl 3 r1內容左移3位送r0 暫存器間接定址 ldr r1,r2 r2做位址取數送r1 基址變址定址 ldr r1,r2,4 r2 4作位址取數送r1...