- N +

匯編語言指令運算符有哪些(匯編語言jmp指令)

大家好,匯編語言指令運算符有哪些相信很多的網(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é)束啦,以上的文章解決了您的問題嗎?歡迎您下次再來哦!

返回列表
上一篇:
下一篇: