最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

匯編語(yǔ)言:x86匯編指令大全及其注意事項(xiàng)

 更新時(shí)間:2021年10月04日 11:52:42   作者:你隔壁的小傻子  
用最精煉的語(yǔ)言,記錄匯編語(yǔ)言中所有常用或不常用或極其重要的匯編指令及其注意事項(xiàng),以方便自己和讀者進(jìn)行查閱,如有錯(cuò)誤和不足請(qǐng)?jiān)谠u(píng)論區(qū)指出

Part 1:instruction

積少成多,持續(xù)更新。(這將會(huì)是一個(gè)極其漫長(zhǎng)的過(guò)程)
表格中各條指令的順序根據(jù)筆者所認(rèn)為的重要或常用程度進(jìn)行排序,僅供參考。

Part 2

本表格中所涉及的F是指狀態(tài)寄存器,CF指進(jìn)位標(biāo)志位,其它以此類(lèi)推。

2.1 (邏輯)運(yùn)算、移位等常用指令

這一部分記錄匯編語(yǔ)言程序設(shè)計(jì)當(dāng)中使用頻率最高的一部分指令。

2.1 (邏輯)運(yùn)算、移位等常用指令

這一部分記錄匯編語(yǔ)言程序設(shè)計(jì)當(dāng)中使用頻率最高的一部分指令。

指令 作用 注意事項(xiàng) 示例
mov dest, src 傳送指令 1.dest和src不能同時(shí)為存儲(chǔ)器操作數(shù)
2.CS不能作為dest
3.段寄存器之間不能互相傳送
4.立即數(shù)不能送入段寄存器
mov ax,word ptr[bx+si+2]
add dest,src 加法指令 dest,src不能同時(shí)為存儲(chǔ)器操作數(shù)或段寄存器
add ax,cx
adc dest,src 帶進(jìn)位加法指令 dest=dest+src+CF,常用于多字節(jié)加法
inc dest 加一指令 1.此操作不影響CF的狀態(tài) inc byte ptr[si]
sub dest,src 減法指令 1.dest,src的要求與add相同
2.觸發(fā)OF:異號(hào)相減且結(jié)果的符號(hào)為與被減數(shù)不同
sub ax,cx
sbb dest,src 帶進(jìn)位減法 常用于多字節(jié)減法
dec dest 減一指令 不影響CF的狀態(tài),但其他幾個(gè)標(biāo)志位都會(huì)受到影響 dec ax
mul dest 無(wú)符號(hào)乘法指 1.dest為字節(jié)數(shù)據(jù),則與AL相乘,結(jié)果放入AX
2.dest為字?jǐn)?shù)據(jù),與AX相乘結(jié)果低16位放入AX,高16位放入DX
3.dest不能是立即數(shù)
mul ax
imul dest 有符號(hào)乘法 細(xì)節(jié)與mul完全相同,對(duì)最高位的解釋不同 imul ax
div dest 無(wú)符號(hào)除法 1.dest為字節(jié)數(shù)據(jù),用AX除以dest,商放在AL,余數(shù)放在AH
2.dest為字?jǐn)?shù)據(jù),用低16位為AX,高16位為DX的雙字?jǐn)?shù)據(jù)除以dest,商放在AX,余數(shù)放在DX
idiv dest 帶符號(hào)除法 與無(wú)符號(hào)完全相同。除法溢出時(shí)結(jié)果無(wú)效 idiv ax
cbw 擴(kuò)展AL為AX字?jǐn)?shù)據(jù) 1.僅用于擴(kuò)展帶符號(hào)數(shù),無(wú)符號(hào)直接清零即可
2.不帶操作數(shù)
cbw
cwd 擴(kuò)展AX字為DX,AX雙字?jǐn)?shù)據(jù) 要求與cbw相同 cwd
seg 取標(biāo)號(hào)或變量的段地址 mov di,seg label
lea 取偏移地址 1.與offset作用類(lèi)似
2.load efficient address的簡(jiǎn)寫(xiě)
lea ax,label
offset 取偏移地址 1.作用與lea相同
2.速度比lea快
mov ax,offset label
org 設(shè)定程序段起始地址(偏移) 1.是origin的縮寫(xiě)
2.若無(wú)org默認(rèn)程序從cs:0開(kāi)始存放指令代碼
3.兩個(gè)org指令之間空余的空間用0填充
org offsetVal
xlat 轉(zhuǎn)換表指令 1.BX存放表的首地址,AL存放當(dāng)前表中元素的偏移量
2.不影響F的狀態(tài)
xlat ;無(wú)需操作數(shù)

2.2 循環(huán)移位指令

循環(huán)移位指令非常容易混淆,但是卻十分重要,因此需要牢牢記住并時(shí)常查閱此表。

指令 作用 注意事項(xiàng) 示例
SHL 邏輯左移指令 1.最高位進(jìn)入CF中
2.最低位直接用0填充
SHL AH,1
SHR 邏輯右移指令 1.最低位進(jìn)入CF中
2.最高位直接用0填充
SHR BX,1
SAL 算術(shù)左移指令 行為與SHL沒(méi)有差別 SAL BL,CL
SAR 算術(shù)右移指令 1.最低位進(jìn)入到CF中
2.最高位右移后填充最高位(即用最高位填充最高位)
SAR CL,BX
ROL 循環(huán)左移指令 最高位進(jìn)入到CF中并填充最低位 同上
ROR 循環(huán)右移指令 最低位進(jìn)入到CF中并填充最高位 同上
RCL 帶進(jìn)位循環(huán)左移指令 1.最低位由CF填充
2.最高位進(jìn)入CF
同上
RCR 帶進(jìn)位循環(huán)右移指令 1.最高位由CF填充
2.最低位進(jìn)入CF
同上

2.3 數(shù)據(jù)串操作指令

重復(fù)前綴指令與數(shù)據(jù)串操作指令連用常常能起到事半功倍的效果,注意使用了大大提升匯編程序的簡(jiǎn)潔性。

指令 作用 注意事項(xiàng) 示例
lods/lodsw/lodsb 載入數(shù)據(jù)串指令 1.具體操作:從ds:si讀取一個(gè)字節(jié)/字/雙字到AL,AX,EAX中,SI根據(jù)DF的值進(jìn)行增減對(duì)應(yīng)的數(shù)值 lodsw ;無(wú)需操作數(shù)
stos/stosw/stosb 存數(shù)據(jù)串指令 1.AX/AL的內(nèi)容存放到ES:DI中
2.指針修改是自動(dòng)且隱式的
stos/stosw/stosb ;無(wú)需操作數(shù)
cmps/cmpsb/cmpsw 數(shù)據(jù)串比較指令 cmps需要兩個(gè)操作數(shù)(數(shù)據(jù)串首地址),后兩個(gè)無(wú)需操作數(shù),字符串的比較由DI和SI完成 ;NULL
movs/movsb/movsw 數(shù)據(jù)串傳送指令 注意事項(xiàng)參照上方的cmps等的用法 ;NULL
rep/repz/repnz 重復(fù)前綴指令 1.當(dāng)cx的內(nèi)容不為0時(shí)執(zhí)行操作(先判斷)
2.用CLD,STD控制增、減量修改
3.與數(shù)據(jù)串操作指令結(jié)合使用,實(shí)現(xiàn)內(nèi)存拷貝、比較等功能
不需要操作數(shù)

2.4 邏輯運(yùn)算指令

這一部分指令是以我的理解進(jìn)行劃分,所以可能不太精準(zhǔn),有意見(jiàn)歡迎在評(píng)論區(qū)提出。

指令 作用 注意事項(xiàng) 示例
cmp dest,src 1.比較指令 1.用dest減去src,但不保存結(jié)果
2.相減的結(jié)果影響F
cmp ax,cx
test dest,src 1.將dest與src相與 可用來(lái)測(cè)試是否為零等,結(jié)果不保存
2.影響F
test ax,ax
neg dest 取補(bǔ)指令,得到相反數(shù) 影響F neg ax
not dest 取反指令 1.將操作數(shù)每一位按位取反
2.不影響F
not AX

2.5 基于大小關(guān)系的跳轉(zhuǎn)指令

在使用了cmp,sub,subb等指令后通常使用如下這些指令銜接以便進(jìn)行下一步的操作,令程序十分簡(jiǎn)潔。需要注意的是,根據(jù)有符號(hào)和無(wú)符號(hào)數(shù)需要選擇不同的指令進(jìn)行基于大小關(guān)系的跳轉(zhuǎn)。

無(wú)符號(hào)數(shù)
指令 作用
JA label 大于時(shí)跳轉(zhuǎn)
JAE label 大于等于時(shí)跳轉(zhuǎn)
JB label 小于時(shí)跳轉(zhuǎn)
JBE label 小于等于時(shí)跳轉(zhuǎn)
帶符號(hào)數(shù)
指令 作用
JG label 大于時(shí)跳轉(zhuǎn)
JGE label 大于等于時(shí)跳轉(zhuǎn)
JL label 小于時(shí)跳轉(zhuǎn)
JEL label 小于等于時(shí)跳轉(zhuǎn)
無(wú)符號(hào)、帶符號(hào)通用
JE label 等于時(shí)跳轉(zhuǎn)
JNE label 不等于時(shí)跳轉(zhuǎn)

2.6 基于單標(biāo)志位的轉(zhuǎn)移指令

根據(jù)標(biāo)志寄存器F中標(biāo)志位的狀態(tài)決定是否進(jìn)行跳轉(zhuǎn),通常在進(jìn)行運(yùn)算后結(jié)合這些指令進(jìn)行跳轉(zhuǎn)。

指令 作用
JC label CF=1時(shí)跳轉(zhuǎn)
JNC label CF=0時(shí)跳轉(zhuǎn)
JZ label ZF=1時(shí)跳轉(zhuǎn)
JNZ label ZF=0時(shí)跳轉(zhuǎn)
JO label OF=1時(shí)跳轉(zhuǎn)
JNO label OF=0時(shí)跳轉(zhuǎn)
JS label SF=1時(shí)跳轉(zhuǎn)
JNS label SF=0時(shí)跳轉(zhuǎn)
JP label SF=1時(shí)跳轉(zhuǎn)
JNP label PF=0時(shí)跳轉(zhuǎn)

Part 3:Loading… …

第一次更新:2020-05-15 15:29
第二次更新:2020-05-22 00:14
第三次更新:2020-05-24 00:24
第四次更新:2020-05-24 21:10

持續(xù)更新中… …

到此這篇關(guān)于匯編語(yǔ)言:x86匯編指令大全及其注意事項(xiàng)的文章就介紹到這了,更多相關(guān)x86匯編指令大全內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 匯編語(yǔ)言 and和or邏輯運(yùn)算指令的實(shí)現(xiàn)

    匯編語(yǔ)言 and和or邏輯運(yùn)算指令的實(shí)現(xiàn)

    這篇文章主要介紹了匯編語(yǔ)言 and,or邏輯運(yùn)算指令的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編語(yǔ)言中debug命令使用小結(jié)

    匯編語(yǔ)言中debug命令使用小結(jié)

    Debug是DOS、Windows都提供的實(shí)模式(8086方式)程序的調(diào)試工具,本文主要介紹了匯編語(yǔ)言中debug命令使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • 詳解匯編語(yǔ)言 dup偽指令

    詳解匯編語(yǔ)言 dup偽指令

    dup它有多種意義,包括Linux c 函數(shù)、C語(yǔ)言函數(shù)DUP、匯編指令、化學(xué)物質(zhì)DUP。這篇文章主要介紹了匯編語(yǔ)言 dup偽指令的相關(guān)知識(shí),需要的朋友可以參考下
    2020-01-01
  • 王爽 匯編語(yǔ)言學(xué)習(xí)筆記(詳細(xì))

    王爽 匯編語(yǔ)言學(xué)習(xí)筆記(詳細(xì))

    王爽匯編語(yǔ)言第三版是一款高清完整版的專(zhuān)業(yè)編程圖書(shū),該書(shū)結(jié)構(gòu)設(shè)計(jì)合理,內(nèi)容全面涵蓋知識(shí)點(diǎn)豐富,適合自學(xué)者使用,有需要者快來(lái)
    2020-01-01
  • UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼的使用

    UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼的使用

    這篇文章主要為大家介紹了UEFI開(kāi)發(fā)基礎(chǔ)匯編代碼使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • asm基礎(chǔ)——匯編指令之in/out指令

    asm基礎(chǔ)——匯編指令之in/out指令

    這篇文章主要介紹了asm基礎(chǔ)——匯編指令之in/out指令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編程序輸出“Hello world”的實(shí)現(xiàn)

    匯編程序輸出“Hello world”的實(shí)現(xiàn)

    這篇文章主要介紹了匯編程序輸出“Hello world”的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 匯編語(yǔ)言乘指令 MUL、IMUL的具體使用

    匯編語(yǔ)言乘指令 MUL、IMUL的具體使用

    這篇文章主要介紹了匯編語(yǔ)言乘指令 MUL、IMUL的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 用匯編語(yǔ)言實(shí)現(xiàn)從1加到100的方法(1+2+...+100)

    用匯編語(yǔ)言實(shí)現(xiàn)從1加到100的方法(1+2+...+100)

    這篇文章主要介紹了用匯編語(yǔ)言實(shí)現(xiàn)從1加到100的方法(1+2+...+100),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • x86匯編DOS編程環(huán)境搭建過(guò)程

    x86匯編DOS編程環(huán)境搭建過(guò)程

    在學(xué)習(xí)x86匯編時(shí),第一步是搭建一個(gè)可以編譯、運(yùn)行代碼的環(huán)境,這個(gè)搭建方法也真的超簡(jiǎn)單,本文重點(diǎn)給大家介紹x86匯編DOS編程環(huán)境搭建過(guò)程,感興趣的朋友一起看看吧
    2021-11-11

最新評(píng)論

津南区| 台南市| 枣强县| 巴中市| 沙河市| 麻阳| 扎鲁特旗| 高唐县| 高雄市| 资中县| 驻马店市| 政和县| 嘉鱼县| 四会市| 舞阳县| 七台河市| 林甸县| 达孜县| 常山县| 女性| 上林县| 鱼台县| 光山县| 岐山县| 常山县| 德昌县| 喀喇沁旗| 汕头市| 澄江县| 万全县| 瓦房店市| 阳山县| 沽源县| 富锦市| 安溪县| 商丘市| 吉首市| 巴青县| 娱乐| 肃宁县| 威宁|