普通位移指令:
sal oprd,count 算數左移指令
shl oprd,count 邏輯左移指令(同上)
sar oprd,count 算數右移指令
shr oprd,count 邏輯右移指令
運算元oprd可以是通用暫存器,也可以是儲存單元,其尺寸可以是位元組可以是字也可以是雙字,count可以是乙個8位立即數也可以是暫存器cl。
這些指令可以導致標誌位cf受其影響。
sal/shl:
邏輯左移指令和算數左移指令是一樣的,右邊補0,左邊一移出的最後一位補到cf中(移位指令工作時是用二進位制形式移位)
sar:
算數右移指令左邊的符號位不變,右邊最後乙個移出的填入cf中。
shr:
邏輯右移指令左邊補0,右邊移出最後一位填入cf中去。
迴圈位移指令:
rol oprd,count ;左迴圈移位指令
ror oprd,count ;右迴圈移位指令
rcl oprd,count ;帶進製的左迴圈位移指令
rcr oprd,count ;帶進製的右迴圈位移指令
rol:
左迴圈移位指令是把運算元oprd迴圈左移count位。每向左移一位,移出的最高有效位變成最低有效位同時變成cf
ror:
右迴圈移位指令是把運算元oprd迴圈右移count位。每向右移一位,移出的最低有效位變成最高有效位同時變成cf
rcl:
帶進製的左迴圈位移指令是把cf加入迴圈中去,把最高有效位移入cf,而cf中數移入最低有效位中。
rcr:
帶進製的右迴圈位移指令是把cf加入迴圈中去,把最低有效位移入cf,而cf中數移入最高有效位中。
一.mul
mul oprd
如果oprd是32位,則將其與eax相乘。將結果送到edx含高32位,eax含低32位
**一.div
div oprd
如果oprd是32位
則edx含有被除數高32位,eax含有被除數低32位
結果的商送到eax,結果的餘數送到edx中
一.mul
(1).8位的話,乙個預設存放在al中,另乙個存放在8位暫存器或記憶體位元組單元中
相乘的積:8位乘法預設存放在ax中
(2).若是16位,乙個預設存放在ax中,另乙個存放在16位暫存器或記憶體字單元中
相乘的積:高8位預設放在dx,低位放在ax
一.div
div除法指令分被除數是16位和32位。
(1).如果被除數是32位則除數為16位, 除數為16位,被除數存放在ax和dx中,ax低8位,dx高8位。
結果表示:ax存放商,dx存放餘數。
(2).如果被除數是16位則除數為8位,被除數預設存放在ax中; 除數為8位,(16位最大表示65535)
結果表示:al存放商ah存放餘數。
注:
(1). 而且如果除數不足也要放置相應位數的暫存器中;
(2).32位彙編指令同時可以使用16位彙編指令
80x86彙編常用指令
一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...
80X86彙編 mul 乘法指令
使用 mul 做乘法的時候,注意以下兩點 格式如下 mul reg mul 記憶體單元記憶體單元可以用不同的定址方式給出,比如 mul byte ptr ds 0 含義 ax al ds 16 0 mul word ptr bx si 8 含義 ax ax ds 16 bx si 8 的結果的低 1...
80x86組合語言 分類統計
組合語言的程式設計題!急 有100個學生成績,存放在以data為首址的位元組儲存單元中。試統計其中90 含90 以上的人數,60 90 含60 之間的人數,60以下的人數,分別存入max,middle,min三個變數中。15 分鐘前 做而論道 十七級 最快回答 assume ds qq,cs cc ...