大家好,匯編語言指令運算符有哪些相信很多的網(wǎng)友都不是很明白,包括匯編語言jmp指令也是一樣,不過沒有關(guān)系,接下來就來為大家分享關(guān)于匯編語言指令運算符有哪些和匯編語言jmp指令的一些知識點,大家可以關(guān)注收藏,免得下次來找不到哦,下面我們開始吧!
8086 133條指令有哪些
8086指令包含133條基本指令,一般分為五類來介紹
傳送指令,算術(shù)運算指令,邏輯運算和移位指令,串操作指令,控制轉(zhuǎn)移指令
一、數(shù)據(jù)傳送類指令
數(shù)據(jù)傳送是計算機中最基本、最重要的一種操作,傳送指令也是最常使用的一類指令
傳送指令把數(shù)據(jù)從一個位置傳送到另一個位置
除標志寄存器傳送指令外,均不影響標志位
重點掌握
MOVXCHGPUSHPOPXLATLEA
1、通用數(shù)據(jù)傳送指令
提供方便靈活的通用傳送操作
有3條指令
MOV
XCHG
PUSHPOP
①基本傳送指令MOV(move)
movcl,4;cl←4,字節(jié)傳送
movdx,0ffh;dx←00ffh,字傳送
movsi,200h;si←0200h,字傳送
movbvar,0ah;字節(jié)傳送
;假設(shè)bvar是一個字節(jié)變量,定義如下:bvardb0
movwvar,0bh;字傳送
;假設(shè)wvar是一個字變量,定義如下:wvardw0
moval,[bx];al←ds:[bx]
movdx,[bp];dx←ss:[bp+0]
movdx,[bp+4];dx←ss:[bp+4]
moves,[si];es←ds:[si]
2,非法指令的主要現(xiàn)象:
兩個操作數(shù)的類型不一致
無法確定是字節(jié)量還是字量操作
兩個操作數(shù)都是存儲器
段寄存器的操作有一些限制
例子:
1、當無法通過任一個操作數(shù)確定是操作類型時,需要利用匯編語言的操作符顯式指明
MOV[BX+SI],255;非法指令,修正:
;movbyteptr[bx+si],255
;byteptr說明是字節(jié)操作
;movwordptr[bx+si],255
;wordptr說明是字操作
2,8088指令系統(tǒng)除串操作指令外,不允許兩個操作數(shù)都是存儲單元(存儲器操作數(shù))
MOVbuf2,buf1如MOV[BX],[SI]
3,MOVDS,ES;非法指令,修正:
;movax,es
;movds,ax
MOVDS,100H;非法指令,修正:
;movax,100h
;movds,ax
MOVCS,[SI];非法指令
;指令存在,但不能執(zhí)行
②交換指令XCHG(exchange)
XCHGreg,reg/mem
;reg?reg/mem
寄存器與寄存器之間對換數(shù)據(jù)
寄存器與存儲器之間對換數(shù)據(jù)
不能在存儲器與存儲器之間對換數(shù)據(jù)
例子:
movax,1199h;ax=1199h
xchgah,al;ax=9911h
;等同于xchgal,ah
movwvar,5566h;wvar是一個字量變量
xchgax,wvar;ax=5566h,wvar=9911h
;等同于xchgwvar,ax
注意:不能在兩個內(nèi)存單元之間交換
如:XCHG[BX],[SI]錯誤!
段寄存器中CS、IP不能做操作數(shù)
③堆棧操作指令
1.堆棧是一個“后進先出LIFO”(或說“先進后出FILO”)的主存區(qū)域,位于堆棧段中;SS段寄存器記錄其段地址
堆棧只有一個出口,即當前棧頂;用堆棧指針寄存器SP指定
2,堆棧只有兩種基本操作:進棧和出棧,對應(yīng)兩條指令PUSH和POP
堆棧由棧底向低地址方向生成
push:進棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部
如:pushax
push[2000h]
出棧指令POP:出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2
如:popax
popwvar
3,堆棧操作的特點
堆棧操作的單位是字,進棧和出棧只對字進行
數(shù)據(jù)從棧頂壓入和彈出時,都是低地址送低字節(jié),高地址送高字節(jié)
堆棧操作遵循先進后出原則,但可用存儲器尋址方式隨機存取堆棧中的數(shù)據(jù)
堆棧段是程序中不可或缺的一個內(nèi)存區(qū),常用來
臨時存放數(shù)據(jù)
傳遞參數(shù)
保存和恢復(fù)寄存器
2、累加器專用傳送指令
①輸入輸出指令(IN/OUT指令)
格式:INAL,port;port為直接端口地址
INAL,DX;DX的內(nèi)容為端口地址(間接方式)
INAX,port;
INAX,DX
OUTport,AL
OUTDX,AL
OUTport,AX
OUTDX,AX
注意:①只能用累加寄存器不能用其它寄存器
②當端口地址在00H—FFH之間可以用直接地址
當端口地址大于FFH時必須用DX間址形式
例:INAL,40H;(40H)AL
INAX,80H;(80H)、(81H)AX
MOVDX,0382H
INAL,DX;(0382H)AL
OUT62H,AL
MOVDX,0380H
OUTDX,AX
②換碼指令XLAT(查表指令)
將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給AL
XLAT;al←ds:[bx+al]
換碼指令執(zhí)行前:
在主存建立一個字節(jié)量表格,內(nèi)含要轉(zhuǎn)換成的目的代碼
表格首地址存放于BX,AL存放相對表格首地址的位移量
換碼指令執(zhí)行后:
將AL寄存器的內(nèi)容轉(zhuǎn)換為目標代碼
③址傳送指令三條LEA、LDS、LES
將存儲器操作數(shù)的有效地址送至指定的16位通用寄存器
LEAr16,mem
;r16←mem的有效地址EA
例子:有效地址的獲取
LEAAX,[2375H];AX=2375H
LEASP,[BX+SI];SP=(BX)+(SI)
區(qū)別:LEASI,BUFF;SI=BUFF
MOVSI,BUFF;SI=(BUFF)
LDSr16,mem
;ds、r16←mem中的雙字,
執(zhí)行后,會更新r16,ds的值。前面兩個字節(jié)送到r16,后面兩個字節(jié)送到ds
LESr16,mem
;es、r16←mem中的雙字,執(zhí)行后,會更新r16,ds的值,效果與lds類似
3、標志傳送指令
①讀標志指令
LAHF;標志寄存器低字傳送到AH
②設(shè)標志指令
SAHF;AH的內(nèi)容送標志寄存器低8位
③標志寄存器堆棧指令
PUSHF;標志寄存器內(nèi)容(16位)壓棧
④標志寄存器出棧指令
POPF;彈出標志寄存器的內(nèi)容。
二、算術(shù)運算類指令
概述:算術(shù)運算類指令用來執(zhí)行二進制的算術(shù)運算:加減乘除以及BCD碼調(diào)整。
這類指令會根據(jù)運算結(jié)果影響狀態(tài)標志,有時要利用某些標志才能得到正確的結(jié)果;使用他們時請留心有關(guān)狀態(tài)標志。
重點掌握
加法指令:ADD、ADC、INC
減法指令:SUB、SBB、DEC、CMP、NEG
1、加法和減法指令
加法指令:ADD,ADC和INC
減法指令:SUB,SBB,DEC,NE
jne的匯編指令是什么
匯編指令是匯編語言中使用的一些操作符和助記符,還包括一些偽指令(如assume,end)。用于告訴匯編程序如何進行匯編的指令,它既不控制機器的操作也不被匯編成機器代碼,只能為匯編程序所識別并指導(dǎo)匯編如何進行。
jne是匯編指令中的一個條件轉(zhuǎn)移指令。當ZF=0,轉(zhuǎn)至標號處執(zhí)行。
1.分類:匯編指令按功能可分為以下七個部分:數(shù)據(jù)傳送指令、算術(shù)運算指令、邏輯運算指令、串操作指令、控制轉(zhuǎn)移指令、處理器控制指令、保護方式指令。
2.數(shù)據(jù)允許流動方向為:通用寄存器之間、通用寄存器和存儲器之間、通用寄存器和段寄存器之間、段寄存器和存儲器之間,另外還允許立即數(shù)傳送至通用寄存器或存儲器。但在上述傳送過程中,段寄存器CS的值不能用傳送指令改變。
3.80x86指令包括短算法:用加、減、乘、除四種基本算術(shù)運算操作及十進制算術(shù)運算調(diào)整指令。二進制加、減法指令,帶符號操作數(shù)采用補碼表示時,無符號數(shù)和帶符號數(shù)據(jù)運算可以使用相同的指令。二進制乘、除法指令分帶符號數(shù)和無符號數(shù)運算指令。
ror指令英文全稱是什么
RotationRight
左、右循環(huán)移位指令包括循環(huán)右移ROR(RotationRight)和循環(huán)左移ROL(RotationLeft)指令。
移位操作指令是一組經(jīng)常使用的指令,屬于匯編語言邏輯指令中的一部分,它包括移位指令(含算術(shù)移位指令、邏輯移位指令),循環(huán)移位指令(含帶進位的循環(huán)移位指令),雙精度移位指令三大類。其功能為將目的操作數(shù)的所有位按操作符規(guī)定的方式移動1位或按寄存器CL規(guī)定的次數(shù)(0~255)移動,結(jié)果送入目的地址。目的操作數(shù)是8位(或16位)的寄存器數(shù)據(jù)或存儲器數(shù)據(jù)。
什么是移位類指令
移位操作指令是一組經(jīng)常使用的指令,屬于匯編語言邏輯指令中的一部分,它包括移位指令(含算術(shù)移位指令、邏輯移位指令),循環(huán)移位指令(含帶進位的循環(huán)移位指令),雙精度移位指令三大類。其功能為將目的操作數(shù)的所有位按操作符規(guī)定的方式移動1位或按寄存器CL規(guī)定的次數(shù)(0~255)移動,結(jié)果送入目的地址。目的操作數(shù)是8位(或16位)的寄存器數(shù)據(jù)或存儲器數(shù)據(jù)。
movs r0全部指令
movsr0"是一條機器人指令,用于將一個或多個機器人移動到指定位置。這個指令需要兩個參數(shù):機器人的R0編號,通常是0、1或2;目標位置的X、Y和Z坐標值。
以下是"movsr0"指令的完整列表:
指令格式:
movsr0<目標位置坐標>
參數(shù)說明:
<目標位置坐標>:機器人的目標位置,格式為X、Y、Z。
機器人的R0編號:
0:機器人1。
1:機器人2。
2:機器人3。
...:機器人數(shù)量(具體數(shù)量取決于指令中的參數(shù)數(shù)量)。
指令示例:
movsr0(034)目標位置坐標
目標位置坐標為(034)。
請注意,這個指令的具體實現(xiàn)可能會因機器人編程語言或操作系統(tǒng)的不同而有所不同。
gt在匯編語言中的用法
匯編語言中,各種運算符比如關(guān)系運算符,英文全稱解釋如下:大于:GT=GreatThan>等于:EQ=Equal=大于等于:GE=GreatandEqual>=不等于:NE=NotEqual<>
匯編語言中,各種運算符比如關(guān)系運算符,英文全稱解釋如下:大于:GT=GreatThan>等于:EQ=Equal=大于等于:GE=GreatandEqual>=不等于:NE=NotEqual<>
匯編語言指令運算符有哪些和匯編語言jmp指令的問題分享結(jié)束啦,以上的文章解決了您的問題嗎?歡迎您下次再來哦!