導航:首頁 > 程序命令 > 匯編命令集

匯編命令集

發布時間:2023-01-23 19:05:22

A. 匯編命令

這是32位匯編
mov ecx 00000037 //ecx=00000034 把ecx寄存器的值設為37 相當於c語言的賦值語句 如 int a = 37
Cmp byte ptr[ecx],00 //ecx=0012A444 cmp相當於不保存結果的sub減法指令 把ecx 地址里的內容與00相比較
Mov dl,[ecx+eax+08] //ecx=0012A43C EAX=00000000 與第一句差不多,把[ecx+eax+08] 里的值傳給dl,dl寄存器是八位的
Mov [ecx+eax+08],dl //ecx=0012A43C EAX=00000000 與上一句相對應,把dl里的值傳送給內存[ecx+eax+08]
下面的都差不多了,自己好好理解一下吧
Cmp byte ptr [edx+ecx],00 //edx=0012A444 ecx=00000000
Mov cl,[ecx+ebp+08] //ecx=00000008 ebp=0012A43C
Mov al,[eax+ecx+08] //eax=0012A408 ecx=00000000
Mov bl,[ecx+eax] //ecx=00000000 eax=0012A444

B. 談談對匯編語言的認識

通過兩節課的學習,我了解到匯編語言是直接在硬體之上工作的編程語言。首先要了解的是機器語言,機器語言是機器指令的集合,機器指令展開來講就是一台機器可以正確執行的命令。早期的程序員們很快就發現了使用機器語言帶來的麻煩,它比較難於辨別和記憶,給整個產業的發展帶來了障礙,於是便產生了匯編語言。
匯編語言的主體是匯編指令。匯編指令和機器指令的差別在於指令的表示方法上。匯編指令是機器指令便於記憶的書寫格式。我了解到,用匯編語言編寫程序的工作過程是:程序員用匯編語言寫出源程序,再用匯編編譯器將其編譯為機器碼,最後由計算機執行。
匯編語言的核心是匯編指令,匯編指令決定了匯編語言的特性。匯編指令是機器指令的助記符,同機器指令一一對應。每一種CPU都有自己的匯編指令集。CPU可以直接使用的信息在存儲器中存放。在存儲器中指令和數據沒有任何區別,都是二進制信息。每個存儲單元從0開始順序編號,一個存儲器有128個存儲單元,編號從0~127。一個存儲單元可以存儲8個bit,即8位二進制數。
通過學習我了解到,CPU要想進行數據的讀寫,必須和外部器件進行下面三類信息的交互:存儲單元的地址(地址信息);器件的選擇,讀或寫的命令(控制信息);讀或寫的數據(數據信息)。每個CPU晶元都有許多管腳,這些管腳與匯流排相連。也可以說,這些管腳引出匯流排。一個CPU可以引出3種匯流排的寬度標志了這個CPU的不同方面的性能:地址匯流排的寬度決定了CPU的定址能力;數據匯流排的寬度決定了CPU與其他器件進行數據傳送時的一次數據傳送量;控制匯流排的寬度決定了CPU對系統中其他器件的控制能力。在匯編課程中,我們也從功能的角度詳細介紹了3類匯流排。
最終運行程序的是CPU,我們用匯編語言編程的時候,必須要從CPU的角度考慮問題。對CPU來講,系統中的所有存儲器中的存儲單元都處於一個統一的邏輯存儲器中,它的容量受CPU定址能力的限制。這個邏輯存儲器就是我們所說的內存地址空間。對於初學者的我來說,這個概念還是比較抽象的,希望通過後續的課程學習,能使一些現在仍然模糊的概念更清晰,更具體化。

C. 匯編語言 lea 是什麼意思

LEA是微機8086/8088系列的一條指令,取自英語Load
effective
address——取有效地址,也就是取偏移地址。
LEA指令將存儲器操作數mem的4位16進制偏移地址送到指定的寄存器。這里,源操作數必須是存儲器操作數,目標操作數必須是16位通用寄存器。
因該寄存器常用來作為地址指針,故在此最好選用四個間址寄存器BX,BP,SI,DI之一。
(3)匯編命令集擴展閱讀:
LEA指令常被用作運算求值,要比mov、add、sub等指令搭配快速。
LEA
opera1,
opera2的本來作用是取opera2的地址,然後把這個地址賦給opera1。
lea命令為載入有效地址(load
dffective
address)
和mov用法一樣,指令並不是從制定的位置讀入數據,而是將有效地址寫入到目的操作數值中。
參考資料來源:網路-LEA指令
參考資料來源:網路-匯編語言

D. 匯編語言jnc命令有什麼用處

轉移指令。

意思是CF=0,則跳轉,表示的是AX大於或等於0的時候轉移到EXIT處,所以JNC也可以看成是加法沒有進位,減法沒有借位的時候轉移。

在匯編語言中,用助記符代替機器指令的操作碼,用地址符號或標號代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。

(4)匯編命令集擴展閱讀:

由於匯編指令系統龐大,因而需構建指令系統體系,其指令數量龐大,格式復雜,可記憶性差等。指令中最難的是指令所支持的定址方式,其實質就是指令中操作數如何獲取。對於處理器而言,就是如何找到他所需的數據。

但對於計算機底層的匯編語言而言,這種定址方式將涉及大量的計算存儲格式,與 復雜的存儲管理方式緊密相關,因而難以理解。最後,匯編指令還關繫到如何影響標志位,但處理器標志位非常復雜,因而對其機制掌握就比較困難。

E. 求匯編指令大全~

8086/8088指令系統
一、數據傳送指令
1.通用數據傳送指令
MOV(Move)傳送
PUSH(Push onto the stack)進棧
POP(Pop from the stack)出棧
XCHG(Exchange)交換
.MOV 指令
格式為: MOV DST,SRC
執行的操作:(DST)<-(SRC)
.PUSH 進棧指令
格式為:PUSH SRC
執行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(SRC)
.POP 出棧指令
格式為:POP DST
執行的操作:(DST)<-((SP+1),(SP))
(SP)<-(SP)+2
.XCHG 交換指令
格式為:XCHG OPR1,OPR2
執行的操作:(OPR1)<-->(OPR2)
2.累加器專用傳送指令
IN(Input) 輸入
OUT(Output) 輸出
XLAT(Translate) 換碼
這組指令只限於使用累加器AX 或AL 傳送信息.
.IN 輸入指令
長格式為: IN AL,PORT(位元組)
IN AX,PORT(字)
執行的操作: (AL)<-(PORT)(位元組)
(AX)<-(PORT+1,PORT)(字)
短格式為: IN AL,DX(位元組)
IN AX,DX(字)
執行的操作: AL<-((DX))(位元組)
AX<-((DX)+1,DX)(字)
.OUT 輸出指令
長格式為: OUT PORT,AL(位元組)
OUT PORT,AX(字)
執行的操作: (PORT)<-(AL)(位元組)
(PORT+1,PORT)<-(AX)(字)
短格式為: OUT DX,AL(位元組)
OUT DX,AX(字)
執行的操作: ((DX))<-(AL)(位元組)
((DX)+1,(DX))<-AX(字)
在IBM-PC 機里,外部設備最多可有65536個I/O 埠,埠(即外設的埠地址)為
0000~FFFFH.其中前256個埠(0~FFH)可以直接在指令中指定,這就是長格式中的PORT,此
時機器指令用二個位元組表示,第二個位元組就是埠號.所以用長格式時可以在指定中直接指定
埠號,但只限於前256個埠.當埠號>=256時,只能使用短格式,此時,必須先把埠號放到
DX 寄存器中(埠號可以從0000到0FFFFH),然後再用IN 或OUT 指令來傳送信息.
.XLAT 換碼指令
格式為: XLAT OPR
或: XLAT
執行的操作:(AL)<-((BX)+(AL))
3.有效地址送寄存器指令
LEA(Load effective address)有效地址送寄存器
LDS(Load DS with Pointer)指針送寄存器和DS
LES(Load ES with Pointer)指針送寄存器和ES
.LEA 有效地址送寄存器
格式為: LEA REG,SRC
執行的操作:(REG)<-SRC
指令把源操作數的有效地址送到指定的寄存器中.
.LDS 指針送寄存器和DS 指令
格式為: LDS REG,SRC
執行的操作:(REG)<-(SRC)
(DS)<-(SRC+2)
把源操作數指定的4個相繼位元組送到由指令指定的寄存器及DS 寄存器中.該指令常指定
SI 寄存器.
.LES 指針送寄存器和ES 指令
格式為: LES REG,SRC
執行的操作: (REG)<-(SRC)
(ES)<-(SRC+2)
把源操作數指定的4個相繼位元組送到由指令指定的寄存器及ES 寄存器中.該指令常指定
DI 寄存器.
4.標志寄存器傳送指令
LAHF(Load AH with flags)標志送AH
SAHF(store AH into flags)AH 送標志寄存器
PUSHF(push the flags) 標志進棧
POPF(pop the flags) 標志出棧
.LAHF 標志送AH
格式為: LAHF
執行的操作:(AH)<-(PWS 的低位元組)
.SAHF AH 送標志寄存器
格式為: SAHF
執行的操作:(PWS 的低位元組)<-(AH)
.PUSHF 標志進棧
格式為: PUSHF
執行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
.POPF 標志出棧
格式為: POPF
執行的操作:(PWS)<-((SP)+1,(SP))
(SP)<-(SP+2)
二、算術指令
1.加法指令
ADD(add)加法
ADC(add with carry)帶進位加法
INC(increment)加1
.ADD 加法指令
格式: ADD DST,SRC
執行的操作:(DST)<-(SRC)+(DST)
.ADC 帶進位加法指令
格式: ADC DST,SRC
執行的操作:(DST)<-(SRC)+(DST)+CF
.ADD 加1指令
格式: INC OPR
執行的操作:(OPR)<-(OPR)+1
2.減法指令
SUB(subtract)減法
SBB(subtract with borrow)帶借位減法
DEC(Decrement)減1
NEG(Negate)求補
CMP(Compare)比較
.SUB 減法指令
格式: SUB DST,SRC
執行的操作:(DST)<-(DST)-(SRC)
.SBB 帶借位減法指令
格式: SBB DST,SRC
執行的操作:(DST)<-(DST)-(SRC)-CF
.DEC 減1指令
格式: DEC OPR
執行的操作:(OPR)<-(OPR)-1
.NEG 求補指令
格式: NEG OPR
執行的操作:(OPR)<- -(OPR)
.CMP 比較指令
格式: CMP OPR1,OPR2
執行的操作:(OPR1)-(OPR2)
該指令與SUB 指令一樣執行減法操作,但不保存結果,只是根據結果設置條件標志西半
球.
3.乘法指令
MUL(Unsigned Multiple)無符號數乘法
IMUL(Signed Multiple)帶符號數乘法
.MUL 無符號數乘法指令
格式: MUL SRC
執行的操作:
位元組操作數:(AX)<-(AL)*(SRC)
字操作數:(DX,AX)<-(AX)*(SRC)
.IMUL 帶符號數乘法指令
格式: IMUL SRC
執行的操作:與MUL 相同,但必須是帶符號數,而MUL 是無符號數.
4.除法指令
DIV(Unsigned divide)無符號數除法
IDIV(Signed divide)帶符號數除法
CBW(Convert byte to word)位元組轉換為字
CWD(Contert word to double word)字轉換為雙字
.DIV 無符號數除法指令
格式: DIV SRC
執行的操作:
位元組操作:(AL)<-(AX)/(SRC)的商
(AH)<-(AX)/(SRC)的余數
字操作: (AX)<-(DX,AX)/(SRC)的商
(AX)<-(DX,AX)/(SRC)的余數
.IDIV 帶符號數除法指令
格式: DIV SRC
執行的操作:與DIV 相同,但操作數必須是帶符號數,商和余數也均為帶符號數,且余數的符號
與被除數的符號相同.
.CBW 位元組轉換為字指令
格式: CBW
執行的操作:AL 的內容符號擴展到AH.即如果(AL)的最高有效位為0,則(AH)=00;如(AL)的最
高有效位為1,則(AH)=0FFH
.CWD 字轉換為雙字指令
格式: CWD
執行的操作:AX 的內容符號擴展到DX.即如(AX) 的最高有效位為0, 則(DX)=0;否則
(DX)=0FFFFH.
這兩條指令都不影響條件碼.
三、邏輯指令
1.邏輯運算指令
AND(and) 邏輯與
OR(or) 邏輯或
NOT(not) 邏輯非
XOR(exclusive or)異或
TEST(test) 測試
.AND 邏輯與指令
格式: AND DST,SRC
執行的操作:(DST)<-(DST)^(SRC)
.OR 邏輯或指令
格式: OR DST,SRC
執行的操作:(DST)<-(DST)V(SRC)
.NOT 邏輯非指令
格式: NOT OPR
執行的操作:(OPR)<-(OPR)
.XOR 異或指令
格式: XOR DST,SRC
執行的操作:(DST)<-(DST)V(SRC)
.TEST 測試指令
格式: TEST OPR1,OPR2
執行的操作:(DST)^(SRC)
兩個操作數相與的結果不保存,只根據其特徵置條件碼
2.移位指令
SHL(shift logical left) 邏輯左移
SAL(shift arithmetic left) 算術左移
SHR(shift logical right) 邏輯右移
SAR(shift arithmetic right) 算術右移
ROL(Rotate left) 循環左移
ROR(Rotate right) 循環右移
RCL(Rotate left through carry) 帶進位循環左移
RCR(Rotate right through carry) 帶進位循環右移
格式: SHL OPR,CNT(其餘的類似)
其中OPR 可以是除立即數以外的任何定址方式.移位次數由CNT 決定,CNT 可以是1或CL.
循環移位指令可以改變操作數中所有位的位置;移位指令則常常用來做乘以2除以2操作.
其中算術移位指令適用於帶符號數運算,SAL 用來乘2,SAR 用來除以2;而邏輯移位指令則用
來無符號數運算,SHL 用來乘2,SHR 用來除以2.
四、串處理指令
1.與REP 相配合工作的MOVS,STOS 和LODS 指令
.REP 重復串操作直到(CX)=0為上
格式: REP string primitive
其中String Primitive 可為MOVS,LODS 或STOS 指令
執行的操作:
1)如(CX)=0則退出REP,否則往下執行.
2)(CX)<-(CX)-1
3)執行其中的串操作
4)重復1)~3)
.MOVS 串傳送指令
格式:可有三種
MOVS DST,SRC
MOVSB(位元組)
MOVSW(字)
其中第二、三種格式明確地註明是傳送位元組或字,第一種格式則應在操作數中表明是字還是
位元組操作,例如:
MOVS ES:BYTE PTR[DI],DS:[SI]
執行的操作:
1)((DI))<-((SI))
2)位元組操作:
(SI)<-(SI)+(或-)1,(DI)<-(DI)+(或-)1
當方向標志DF=0時用+,當方向標志DF=1時用-
3)字操作:
(SI)<-(SI)+(或-)2,(DI)<-(DI)+(或-)2
當方向標志DF=0時用+,當方向標志DF=1時用-
該指令不影響條件碼.
.CLD(Clear direction flag)該指令使DF=0,在執行串操作指令時可使地址自動增量;
.STD(Set direction flag)該指令使DF=1,在執行串操作指令時可使地址自動減量.
.STOS 存入串指令
格式: STOS DST
STOSB(位元組)
STOSW(字)
執行的操作:
位元組操作:((DI))<-(AL),(DI)<-(DI)+-1
字操作: ((DI))<-(AX),(DI)<-(DI)+-2
該指令把AL 或AX 的內容存入由(DI)指定的附加段的某單元中,並根據DF 的值及數據類型
修改DI 的內容,當它與REP 聯用時,可把AL 或AX 的內容存入一個長度為(CX)的緩沖區中.
.LODS 從串取指令
格式: LODS SRC
LODSB
LODSW
執行的操作:
位元組操作:(AL)<-((SI)),(SI)<-(SI)+-1
字操作: (AX)<-((SI)),(SI)<-(SI)+-2
該指令把由(SI)指定的數據段中某單元的內容送到AL 或AX 中,並根據方向標志及數據類型
修改SI 的內容.指令允許使用段跨越前綴來指定非數據段的存儲區.該指令也不影響條件碼.
一般說來,該指令不和REP 聯用.有時緩沖區中的一串字元需要逐次取出來測試時,可使
用本指令.
2.與REPE/REPZ 和REPNZ/REPNE 聯合工作的CMPS 和SCAS 指令
.REPE/REPZ 當相等/為零時重復串操作
格式: REPE(或REPZ) String Primitive
其中String Primitive 可為CMPS 或SCAS 指令.
執行的操作:
1)如(CX)=0或ZF=0(即某次比較的結果兩個操作數不等)時退出,否則往下執行
2)(CX)<-(CX)-1
3)執行其後的串指令
4)重復1)~3)
.REPNE/REPNZ 當不相等/不為零時重復串操作
格式: REPNE(或REPNZ) String Primitive
其中String Primitive 可為CMPS 或SCAS 指令
執行的操作:
除退出條件(CX=0)或ZF=1外,其他操作與REPE 完全相同.
.CMPS 串比較指令
格式: CMP SRC,DST
CMPSB
CMPSW
執行的操作:
1)((SI))-((DI))
2)位元組操作:(SI)<-(SI)+-1,(DI)<-(DI)+-1
字操作: (SI)<-(SI)+-2,(DI)<-(DI)+-2
指令把由(SI)指向的數據段中的一個字(或位元組)與由(DI)指向的附加段中的一個字(或位元組)
相減,但不保存結果,只根據結果設置條件碼,指令的其它特性和MOVS 指令的規定相同.
.SCAS 串掃描指令
格式: SCAS DST
SCASB
SCASW
執行的操作:
位元組操作:(AL)-((DI)),(DI)<-(DI)+-1
字操作: (AL)-((DI)),(DI)<-(DI)+-2
該指令把AL(或AX)的內容與由(DI)指定的在附加段中的一個位元組(或字)進行比較,並不保存
結果,只根據結果置條件碼.指令的其他特性和MOVS 的規定相同.
五、控制轉移指令
1.無條件轉移指令
.JMP(jmp) 跳轉指令
1)段內直接短轉移
格式:JMP SHORT OPR
執行的操作:(IP)<-(IP)+8位位移量
2)段內直接近轉移
格式:JMP NEAR PTR OPR
執行的操作:(IP)<-(IP)+16位位移量
3)段內間接轉移
格式:JMP WORD PTR OPR
執行的操作:(IP)<-(EA)
4)段間直接(遠)轉移
格式:JMP FAR PTR OPR
執行的操作:(IP)<-OPR 的段內偏移地址
(CS)<-OPR 所在段的段地址
5)段間間接轉移
格式:JMP DWORD PTR OPR
執行的操作:(IP)<-(EA)
(CS)<-(EA+2)
2.條件轉移指令
1)根據單個條件標志的設置情況轉移
.JZ(或JE)(Jump if zero,or equal) 結果為零(或相等)則轉移
格式:JE(或JZ) OPR
測試條件:ZF=1
.JNZ(或JNE)(Jump if not zero,or not equal) 結果不為零(或不相等)則轉移
格式:JNZ(或JNE) OPR
測試條件:ZF=0
.JS(Jump if sign) 結果為負則轉移
格式: JS OPR
測試條件:SF=1
.JNS(Jump if not sign) 結果為正則轉移
格式:JNS OPR
測試條件:SF=0
.JO(Jump if overflow) 溢出則轉移
格式: JO OPR
測試條件:OF=1
.JNO(Jump if not overflow) 不溢出則轉移
格式: JNO OPR
測試條件:OF=0
.JP(或JPE)(Jump if parity,or parity even) 奇偶位為1則轉移
格式: JP OPR
測試條件:PF=1
.JNP(或JPO)(Jump if not parity,or parity odd) 奇偶位為0則轉移
格式: JNP(或JPO) OPR
測試條件:PF=0
.JB(或JNAE,JC)(Jump if below,or not above or equal,or carry) 低於,或者不高於或等於,或進位
位為1則轉移
格式:JB(或JNAE,JC) OPR
測試條件:CF=1
.JNB(或JAE,JNC)(Jump if not below,or above or equal,or not carry) 不低於,或者高於或者等於,
或進位位為0則轉移
格式:JNB(或JAE,JNC) OPR
測試條件:CF=0
2)比較兩個無符號數,並根據比較的結果轉移
.JB(或JNAE,JC)
格式:同上
.JNB(或JAE,JNC)
格式:同上
.JBE(或JNA)(Jump if below or equal,or not above) 低於或等於,或不高於則轉移
格式:JBE(或JNA) OPR
測試條件:CFVZF=1
.JNBE(或JA)(Jump if not below or equal,or above) 不低於或等於,或者高於則轉移
格式:JNBE(或JA) OPR
測試條件:CFVZF=0
3)比較兩個帶符號數,並根據比較的結果轉移
.JL(或LNGE)(Jump if less,or not greater or equal) 小於,或者不大於或者等於則轉移
格式:JL(或JNGE) OPR
測試條件:SFVOF=1
.JNL(或JGE)(Jump if not less,or greater or equal)不小於,或者大於或者等於則轉移
格式:JNL(或JGE) OPR
測試條件:SFVOF=0
.JLE(或JNG)(Jump if less or equal,or not greater) 小於或等於,或者不大於則轉移
格式:JLE(或JNG) OPR
測試條件:(SFVOF)VZF=1
.JNLE(或JG)(Jump if not less or equal,or greater) 不小於或等於,或者大於則轉移
格式:JNLE(或JG) OPR
測試條件:(SFVOF)VZF=0
4)測試CX 的值為0則轉移指令
.JCXZ(Jump if CX register is zero) CX 寄存器的內容為零則轉移
格式:JCXZ OPR
測試條件:(CX)=0
注:條件轉移全為8位短跳!
3.循環指令
.LOOP 循環指令
格式: LOOP OPR
測試條件:(CX)<>0
.LOOPZ/LOOPE 當為零或相等時循環指令
格式: LOOPZ(或LOOPE) OPR
測試條件:(CX)<>0且ZF=1
.LOOPNZ/LOOPNE 當不為零或不相等時循環指令
格式: LOOPNZ(或LOOPNE) OPR
測試條件:(CX)<>0且ZF=0
這三條指令的步驟是:
1)(CX)<-(CX)-1
2)檢查是否滿足測試條件,如滿足則(IP)<-(IP)+D8的符號擴充.
4.子程序
.CALL 調用指令
.RET 返回指令
5.中斷
.INT 指令
格式: INT TYPE
或INT
執行的操作:(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(TYPE*4)
(CS)<-(TYPE*4+2)
.INTO 若溢出則中斷
執行的操作:若OF=1則:
(SP)<-(SP)-2
((SP)+1,(SP))<-(PSW)
(SP)<-(SP)-2
((SP)+1,(SP))<-(CS)
(SP)<-(SP)-2
((SP)+1,(SP))<-(IP)
(IP)<-(10H)
(CS)<-(12H)
.IRET 從中斷返回指令
格式: IRET
執行的操作:(IP)<-((SP)+1,(SP))
(SP)<-(SP)+2
(CS)<-((SP)+1,(SP))
(SP)<-(SP)+2
(PSW)<-((SP)+1,(SP))
(SP)<-(SP)+2
六、處理機控制指令
1.標志處理指令
.CLC 進位位置0指令(Clear carry)CF<-0
.CMC 進位位求反指令(Complement carry)CF<-CF
.STC 進位位置1指令(Set carry)CF<-1
.CLD 方向標志置0指令(Clear direction)DF<-0
.STD 方向標志置1指令(Set direction)DF<-1
.CLI 中斷標志置0指令(Clear interrupt)IF<-0
.STI 中斷標志置1指令(Set interrupt)IF<-0
2.其他處理機控制指令
NOP(No Opreation) 無操作
HLT(Halt) 停機
WAIT(Wait) 等待
ESC(Escape) 換碼
LOCK(Lock) 封鎖
這些指令可以控制處理機狀態.這們都不影響條件碼.
.NOP 無操作指令
該指令不執行任何操作,其機器碼佔有一個位元組,在調試程序時往往用這條指令佔有一定
的存儲單元,以便在正式運行時用其他指令取代.
.HLT 停機指令
該指令可使機器暫停工作,使處理機處於停機狀態以便等待一次外部中斷到來,中斷結束
後可繼續執行下面的程序.
.WAIT 等待指令
該指令使處理機處於空轉狀態,它也可以用來等待外部中斷的發生,但中斷結束後仍返回
WAIT 指令繼續德行.
.ESC 換碼指令
格式ESC mem
其中mem 指出一個存儲單元,ESC 指令把該存儲單元的內容送到數據匯流排去.當然ESC 指令
不允許使用立即數和寄存器定址方式.這條指令在使用協處理機(Coprocessor)執行某些操作
時,可從存儲器指得指令或操作數.協處理機(如8087)則是為了提高速度而可以選配的硬體.
.LOCK 封鎖指令
該指令是一種前綴,它可與其他指令聯合,用來維持匯流排的鎖存信號直到與其聯合的指令
執行完為止.當CPU 與其他處理機協同工作時,該指令可避免破壞有用信息.

F. 匯編語言中LEA,AX,AL,BX等等什麼意思

這幾個匯編語言LEA(由編譯器計算出data變數的地址,然後替換掉指令中出現data變數標識
) AX,AL(CPU的16位數據寄存器AX,運算時將操作數從內存取出放入寄存器進行計算AX保存16位2進制數 AX也可分為兩個8位寄存器 AH,AL 分別為高8位和低8位)即把AL的偏移地址送入AX寄存器,BX,BL,DI都是寄存器,匯編裡面必會的,在MASM5.0環境下運行

匯編語言是匯編指令集、偽指令集和使用它們規則的統稱,使用具有一定含義的符號為助憶符,用指令助憶符、符號地址等組成的符號指令稱為匯編格式指令。
匯編語言是一門重要的程序設計語言。下面列舉了至少4本名叫《匯編語言》的圖書和教材,並簡要介紹了高校計算機相關專業在開設「匯編語言」課程方面的一些情況。

G. 匯編語言指令大全,要詳細的 !!!!

一、數據位傳送指令:

1、MOV C, bit ;bit 可直接定址位 C←(bit)

2、MOV bit,C ;C 進位位 (bit) ← C

二、位變數修改指令:

1、CLR C ; 將C=0

2、CLR bit

3、CPL C ; 將C求反再存入C

4、CPL bit ; 將bit求反再存入bit

5、SETB C ; 將C=1

6、SETB bit ; (bit) ← 1

三、位變數邏輯指令:


ANL C, bit ANL C, bit ORL C, bit ORL C, bit

H. 匯編語言的跳轉命令大全

Jxx - Jump Instructions Table
Mnemonic Meaning Jump Condition
JA Jump if Above CF=0 and ZF=0
JAE Jump if Above or Equal CF=0
JB Jump if Below CF=1
JBE Jump if Below or Equal CF=1 or ZF=1
JC Jump if Carry CF=1
JCXZ Jump if CX Zero CX=0
JE Jump if Equal ZF=1
JG Jump if Greater (signed) ZF=0 and SF=OF
JGE Jump if Greater or Equal (signed) SF=OF
JL Jump if Less (signed) SF != OF
JLE Jump if Less or Equal (signed) ZF=1 or SF != OF
JMP Unconditional Jump unconditional
JNA Jump if Not Above CF=1 or ZF=1
JNAE Jump if Not Above or Equal CF=1
JNB Jump if Not Below CF=0
JNBE Jump if Not Below or Equal CF=0 and ZF=0
JNC Jump if Not Carry CF=0
JNE Jump if Not Equal ZF=0
JNG Jump if Not Greater (signed) ZF=1 or SF != OF
JNGE Jump if Not Greater or Equal (signed) SF != OF
JNL Jump if Not Less (signed) SF=OF
JNLE Jump if Not Less or Equal (signed) ZF=0 and SF=OF
JNO Jump if Not Overflow (signed) OF=0
JNP Jump if No Parity PF=0
JNS Jump if Not Signed (signed) SF=0
JNZ Jump if Not Zero ZF=0
JO Jump if Overflow (signed) OF=1
JP Jump if Parity PF=1
JPE Jump if Parity Even PF=1
JPO Jump if Parity Odd PF=0
JS Jump if Signed (signed) SF=1
JZ Jump if Zero ZF=1
Clocks Size
Operands 808x 286 386 486 Bytes
Jx: jump 16 7+m 7+m 3 2
no jump 4 3 3 1
Jx near-label - - 7+m 3 4
no jump - - 3 1
- It's a good programming practice to organize code so the
expected case is executed without a jump since the actual
jump takes longer to execute than falling through the test.
- see JCXZ and JMP for their respective timings

JCXZ/JECXZ - Jump if Register (E)CX is Zero
Usage: JCXZ label
JECXZ label (386+)
Modifies flags: None
Causes execution to branch to "label" if register CX is zero. Uses
unsigned comparision.
Clocks Size
Operands 808x 286 386 486 Bytes
label: jump 18 8+m 9+m 8 2
no jump 6 4 5 5
JMP - Unconditional Jump

I. 匯編語言EQU命令

首先你要知道$代表當前地址,因為db代表位元組,所以var1站了5個位元組(0~4),dw代表字為兩個位元組,又因為開辟了10個字的空間,所以var2佔了20個位元組(5~24),接下來為len分配的空間地址就是25了,用25-0=25,len=25

閱讀全文

與匯編命令集相關的資料

熱點內容
投訴聯通用什麼app 瀏覽:150
web伺服器變更ip地址 瀏覽:954
java正則表達式驗證郵箱 瀏覽:360
成熟商務男裝下載什麼軟體app 瀏覽:609
加密2h代表長度是多少厘米 瀏覽:23
拍賣程序員 瀏覽:101
電腦的圖片放在哪個文件夾 瀏覽:274
unsignedintjava 瀏覽:216
編譯器下載地址 瀏覽:42
什麼是面對對象編程 瀏覽:708
b站伺服器什麼時候恢復 瀏覽:721
6p相當於安卓機什麼水準 瀏覽:498
能否給隱藏相冊加密 瀏覽:596
糖心app改什麼名 瀏覽:823
戰地1控伺服器如何部署 瀏覽:395
xp還原系統輸入命令 瀏覽:323
mysql命令行版本 瀏覽:305
如何進入itunes找文件夾 瀏覽:834
CAD中重復命令使用 瀏覽:479
心智pdf 瀏覽:477