匯編:一些語法1-創(chuàng)新互聯(lián)

1,
匯編指令:具有對(duì)應(yīng)的機(jī)器碼指令,被編譯為機(jī)器指令,最終由CPU執(zhí)行。
偽指令:由編譯器來執(zhí)行的指令,編譯器據(jù)其執(zhí)行相關(guān)的編譯工作。

目前創(chuàng)新互聯(lián)建站已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、金秀網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

2,
segment和ends定義一個(gè)段的起始,指令、數(shù)據(jù)、堆棧被劃分到不同的棧。
end標(biāo)示一個(gè)匯編程序結(jié)束,assume假設(shè)某一段寄存器與segment…ends定義的段相關(guān)聯(lián)。
end后面加標(biāo)號(hào)通知編譯器程序入口,設(shè)置CS:IP。

3,
mov cx,3
s:
    add    ax,ax
    loop s
執(zhí)行l(wèi)oop時(shí)先cx減1,若cx不位0就跳轉(zhuǎn)至s處。

4,
and al,01110011B
or al,00111010B

5,
段寄存器:ds, ss, cs, es;
寄存器:ax, bx, cx, dx,
     ah, al, bh, bl, ch, cl, dh, dl,
     sp, bp, si, di。

6,
[bx], [bx+si], [bx+di], [bx+si+3], [bx+di+3] 段都為ds;
[bp], [bp+si], [bp+di], [bp+si+5], [bx+di+5] 段都為ss。

7,
除法,后面可跟寄存器或內(nèi)存單元。
div 寄存器
div 內(nèi)存單元
al = 16位/8位; ah = 16位%8位。
ax= 32位/16位;dx = 32位%8位。
地位商,高位余。
div word ptr [dx+si+8];ax為ax除該內(nèi)存單元值的商,dx為ax除改內(nèi)存單元的余數(shù)。

8,
dup數(shù)據(jù)復(fù)制
db 3 dup (0); 0 0 0
db 3 dup (0, 1,2);0,1,2, 0,1,2, 0,1,2
db一個(gè)數(shù)據(jù)一個(gè)字節(jié);dw一個(gè)數(shù)據(jù)一個(gè)字word,雙字節(jié);dd一個(gè)數(shù)據(jù)雙字double word,四字節(jié)。

9,
操作符offset取得標(biāo)號(hào)的偏移地址,是由編譯器處理的符號(hào)。
mov ax, offset start;取標(biāo)號(hào)start的偏移地址賦值給 ax

10,
jmp通過修改ip或cs:ip無條件跳轉(zhuǎn)。
jmp short 標(biāo)號(hào);ip = ip + (8位位移)
jmp near ptr 標(biāo)號(hào); ip = ip + (16位位移)
short是段內(nèi)短轉(zhuǎn)移,對(duì)ip的修改范圍是(-128--127)前后2的7次方
near ptr 段內(nèi)近轉(zhuǎn)移,范圍是(-32768--32767)前后2的15次方
這個(gè)位移不是標(biāo)號(hào)的目的地址,是更具標(biāo)號(hào)位置計(jì)算出來的當(dāng)前ip值距離標(biāo)號(hào)位置的的差,jmp根據(jù)這個(gè)相對(duì)位移位置加當(dāng)前ip的值得到標(biāo)號(hào)位置賦值給ip使其跳轉(zhuǎn)。

段間轉(zhuǎn)移:
jmp far ptr 標(biāo)號(hào);cs=標(biāo)號(hào)所在段cs,ip=標(biāo)號(hào)所在段ip
jmp ax; ip = ax
jmp word ptr ds:[0] ;ip = ds:[0]
jmp dword ptr ds:[0]; ip = ds:[0], cs = ds:[2]

11,
jcxz 標(biāo)號(hào); if(cx ==0){jmp short 標(biāo)號(hào)}
loop 標(biāo)號(hào);cx--; if(cx!=0){ jmp short 標(biāo)號(hào)}
ret; pop ip
retf ;pop ip 和pop cs
call 標(biāo)號(hào);push ip和 jmp near ptr 標(biāo)號(hào)
call ax; push ip 和jmp near ptr ax
call word ptr ds:[0];同上

12,
乘法,后面可跟寄存器或內(nèi)存單元。
mul 寄存器
mul 內(nèi)存單元
如果是8位乘發(fā)結(jié)果放入 ax中,18位乘發(fā)高位放dx低位放ax
mul byte [0]; ax = al * ds:[0]
mul bx; ax = ax*bx的低位值,dx = ax*bx的高位值

13,
add ax, 9; ax = ax + 9
sub ax, 5; ax = ax – 9
inc ax; ax = ax + 1
dec ax; ax = ax -1匯編:一些語法1

當(dāng)前文章:匯編:一些語法1-創(chuàng)新互聯(lián)
本文地址:http://muchs.cn/article40/dddcho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、搜索引擎優(yōu)化、軟件開發(fā)虛擬主機(jī)手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)