微机常用指令伪指令_2012

合集下载

指令和伪指令

指令和伪指令

①指令和伪指令。

答:汇编指令与机器指令原则上一一对应,在汇编过程中,汇编指令会被替换为机器指令,最终生成可执行的目标代码;指令的功能是由特定CPU的指令译码器确定的,因此,指令是一个硬件相关的概念;汇编过程仅将汇编指令替换为机器指令,而机器指令的执行是在可执行程序执行阶段完成的。

汇编语言伪指令在汇编过程中并不产生机器指令,它们的功能在于指示汇编程序按照指定的方式对汇编语言源程序做出解释,伪指令的功能是由汇编程序解释的,与硬件结构无关;伪指令的执行是在汇编过程中完成的,在程序执行阶段则不存在伪指令的概念。

1.逻辑地址:在CPU内部的存储单元地址表示形式,分为段基值和偏移量两个组成部分,它们都是16位的,在指令或源程序中只能使用逻辑地址来表达存储单元。

2.物理地址:CPU访问存储单元时向地址总线传送的地址表示形式,是20位的地址,由逻辑地址中段基值乘以16再加上偏移量得到,逻辑地址到物理地址的转换由CPU在执行访问存储单元的指令时自动完成。

3.标志寄存器:在CPU中由状态标志位与控制标志位组成的寄存器称为标志寄存器,其中状态标志位用于标识运算指令执行后运算结果的特征,控制标志位用于控制CPU的工作模式或改变CPU对某些事件的响应方式。

4.存储器寻址方式:即获得存储单元地址的方式,在8086/8088CPU中包括直接寻址、寄存器间接寻址、基址寻址、变址寻址、基址变址寻址这五种寻址方式。

5.立即数:以数值形式直接给出的操作数称为立即数,立即数不能作为目的操作数。

6.位移量:直接以数字形式出现的偏移量的分量之一。

7.伪指令:用于指示编译(汇编)程序如何进行编译的指令。

8.位操作指令:9.能精准到位对其进行读写的计算机指令,包括逻辑运算和移位及循环移位指令。

10.中断过程:中断请求、中断响应、中断处理、中断返回11..BCD码:一种十进制编码形式,(1分)限制4个连续二进制位的数值变化范围为0到9,用以表示一个十进制数位,(1分)是实现十进制算术运算调整的必要基础。

伪指令知识点总结

伪指令知识点总结

伪指令知识点总结伪指令这玩意儿,听起来是不是有点玄乎?其实啊,它就像我们生活中的“幕后英雄”,虽然不直接参与“表演”,但却起着至关重要的作用。

比如说,在编程的大舞台上,指令就像是冲锋陷阵的战士,执行着各种具体的任务。

而伪指令呢,则像是军师,在幕后出谋划策,为整个程序的架构和布局提供指导。

咱先来说说数据定义伪指令。

这就好比是在为程序的“仓库”划分区域,规定好每个区域存放什么样的“货物”。

比如说,定义一个字节类型的数据,就像是给仓库里划出一个小格子,只能放一个小小的“物件”;定义一个字类型的数据呢,那就是一个稍微大一点的格子,可以放个稍微大一点的“宝贝”。

你说这是不是很形象?再看看段定义伪指令。

这就像是给程序的“大部队”划分阵营。

不同的阵营有不同的任务和职责。

比如说,代码段就是专门负责执行具体操作的“战斗部队”;数据段呢,则是存放各种“粮草弹药”的地方。

如果没有段定义伪指令,那程序岂不是乱成了一锅粥?还有过程定义伪指令,这就像是给程序中的一个小任务成立了一个“特别行动小组”。

这个小组有自己的规则和流程,能独立完成特定的功能。

宏定义伪指令呢?这就好比是给程序制作了一个“快捷方式”。

当你需要重复执行一段复杂的操作时,不用一次次地重复写那些代码,只要调用这个“快捷方式”就行了,多省事啊!伪指令的作用可不仅仅是这些,它还能控制程序的编译过程,就像是一个精明的“导演”,掌控着整个程序的“拍摄进度”和“效果呈现”。

总之,伪指令在编程中可是不可或缺的存在。

要是没有它们,程序就像是失去了方向的船只,在茫茫的代码海洋中迷失。

所以啊,咱们可得好好掌握这些伪指令的知识,让我们的程序能够高效、准确地运行,为我们解决各种复杂的问题。

你说是不是这个理儿?。

汇编语言中常用的伪指令档

汇编语言中常用的伪指令档

汇编语言中常用的伪指令档汇编语言中常用的伪指令分类:软件相关2013-01-23 20:13 515人阅读评论(0) 收藏举报areaequ伪指令常用汇编语言汇编语言中,指令语句在源程序汇编时会产生可供计算机执行的指令代码,即目标代码。

汇编程序除指令语句外,还需要提供一些指令,用于辅助源程序的汇编。

比如指定程序或数据存放的起始地址,为数据分配一段连续的内存单元等。

这些指令在汇编时并不生成目标代码,不影响程序执行,因此称之为伪指令。

本文简单总结了常用的伪指令,如下。

1、EQU(Equate)一般格式为:标号:EQU 操作数指令功能为将操作数赋予标号,两边的值完全相等。

使用EQU伪指令给一个标号赋值后,此标号在整个源文件中值固定。

AREA: EQU 1000H ;将标号AREA赋值为1000H2、ORG(Origin)一般格式为:ORG xxxxH(绝对地址或标号)XxxxH决定此语句后第一条指令(或数据)的地址。

该段源程序或数据被连续存放在此后的地址内,直到下一条ORG指令为止。

ORG 8000H ;此后目标代码存储在存储器中以0x8000h开始的地址空间中。

ADD R1,#1MOV R2, #23、DB(Define Byte)一般格式为:标号:DB 字节常数或字符或表达式标号字段可有可无,字节常数或字符是指一个字节数据。

此伪指令的功能是把字节常数或字节串存放至内存连续的地址空间中。

ORG 8000HDATA1:DB 43H,09H,08HDATA2:DB 07H伪指令DB指定了43H,09H,08H 顺序存放在8000H开始的存储单元中,DATA2中的07H紧挨着DATA1的地址空间存放,即07H 存放在8003H单元中。

注:DW(Define Word)指令定义与DB类似,区别在于DW定义一个字,DB定义一个字节。

4、END一般格式为:标号:END 地址或标号地址或标号可以忽略。

此伪指令用于指示汇编语言程序段结束。

伪指令

伪指令

A51汇编解释---伪指令 2011-05-11 17:51:46| 分类:默认分类| 标签: |举报 |字号大中小订阅一:定义符号的伪指令1)SEGMENT格式: 段名符号 SEGMENT 段类型 [再定位类型]SEGMENT指令可声明一个可再定位(区别于CSEG,DSEG,XSEG,BSEG,ISEG等定义的在相对应的空间固定地址定义的绝对段—在连接的过程中不允许重新定位)的段符号和一个可选的再定位类型,段符号可以用来定义段,L51连接器可将多个模块内的具有相同段名和再定位类型的几个段合成为一个段.段类型说明了段所处的地址空间.如果是编写的汇编程序要与C源程序接口,即被C源程序调用,则全部的汇编子程序所命名的定义的代码段的段名必须是可用SEGMENT来定义的,而且名字的命名的方法也应该参照C51编译器产生的局部段的段名的转换规则.段名的作用主要是在汇编的时候用RSEG来激活的,在连接定位的时候用到的.与段名相应的是用于存储和传递参数的别名,可以在汇编源程序中直接应用局部段的别名,这个别名主要是在传递函数参数的时候用的.在汇编程序中要用PUBLIC 声明被其他模块引用的全局符号.DATA (可直接寻址的内部RAM空间)IDATA (可间接寻址的内部RAM空间)XDATA (外部数据存储空间)BIT (内部RAM低地址区的可位寻址的空间)CODE (程序存储器空间)可选的再定位类型定义了L51连接时的定位方式,再定位类型:UNIT:定义一个可开始于任一单元的段对于BIT型的段,一个单元是一个位,其它所有的段一个单元是一个字节.PAGE:定义一个起始地址必须是256的整数倍的段,段的绝对地址由L51自己计算,该类型只允许用于XDATA和CODE类型段.INPAGE:定义一个由L51连接后必须包含在256B的块中,只适用于XDATA和CODE段. INBLOCK:定义一个L51连接后必须包含在2KB中的段,只适用于CODE段. OVERLAYABLE:定义一个可与其他段交叠的覆盖段,其段名符号必须按C51或者PL/M51的规则命名.C51把局部数据段和局部位段定义成?DT?FUNCTIONNAME?MODULENAME 和?BI?FUNCTIONNAME?MODULENAME这是在small模式下.其他的模式略有不同。

微机原理常用命令

微机原理常用命令

一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。

1. 通用数据传送指令MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里)XLAT 字节查表转换.── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL )2. 输入输出端口传送指令.IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器)输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时,其范围是0-65535.3. 目的地址传送指令.LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送目标指针,把指针内容装入FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送目标指针,把指针内容装入GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送目标指针,把指针内容装入SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令ADD 加法.ADC 带进位加法.INC 加1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减1.NEC 求反(以0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整.DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去) 三、逻辑运算指令AND 与运算.or 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时, 可直接用操作码. 如SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令DS:SI 源串段寄存器:源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS 串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS 保存串.是LODS的逆过程.REP 当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令1>无条件转移指令(长转移)JMP 无条件转移指令CALL 过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC 无进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为"0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为"1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建立段寄存器寻址.ENDS 段结束.END 程序结束.七、处理机控制指令:标志处理指令CLC(进位位置0指令)CMC(进位位求反指令)STC(进位位置为1指令)CLD(方向标志置1指令)STD(方向标志位置1指令)CLI(中断标志置0指令)STI(中断标志置1指令)NOP(无操作)HLT(停机)WAIT(等待)ESC(换码)LOCK(封锁)。

第一讲伪操作、宏指令与伪指令

第一讲伪操作、宏指令与伪指令
第一讲伪操作、宏指令与伪指令
三、ADS环境下的伪操作和宏指令
➢ADS编译环境下的伪操作可分为以下几类:
符号定义(Symbol Definition)伪操作 数据定义(Data Definition)伪操作 汇编控制(Assembly Control)伪操作 信息报告(Reporting)伪操作 其他(Miscellaneous)伪操作
IMPORT symbol {[WEAK]} EXTERN symbol {〔WEAK〕} GET
告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源 文件中可能引用该符号。
告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源 文件中可能引用该符号。
将一个源文件包含到当前源文件中,并将被包含的文件在其当前位置进行汇编处理。
化 • .hword 21,25,89,0x1133,0x77FF • .short 236,0xF4F
第一讲伪操作、宏指令与伪指令
常量编译控制伪操作 • .ascii • .ascii expr {,expr}….. • 定义字符串expr(非零结束符) • .ascii “How are you” • /*不是以“/0”结束*/
CP
name CP expr
为一个协处理器定义名称。
DN/SN FN
name DN/SN expr name FN expr
DN/SN为一个双精度/单精度的VFP寄存器定义名称。 第一讲伪操作、宏指令与伪指令
为一个FPA浮点寄存器定义名称。
数据定义伪操作
伪操作 LTORG
语法格式 LTORG
作用 声明一个数据缓冲池(也称为文字池)的开始。
伪操作

微机原理与接口技术:伪指令

知识点4.2伪指令4.2 伪指令MASM设置了几十种伪指令,可以分为如下几类:设定存储器段伪指令数据定义伪指令符号定义伪指令过程定义伪指令宏命令伪指令其他伪指令.286选择80286指令系统.286P选择80286保护模式指令系统.386选择80386指令系统.386P选择80386保护模式指令系统.486选择80486指令系统.486P选择80486保护模式指令系统.586选择80586指令系统.586P选择80586保护模式指令系统.686选择80686指令系统.686P选择80686保护模式指令系统.287选择80287数字协处理器.387选择80387数字协处理器.CODE指示代码段开始.DATA指示数据段开始.EXIT返回到DOS.MODEL选择编辑模型.STACK选择堆栈段开始.STARTUP使用编程模型时,指示程序开始ASSUME在以完整的段定义方式编程时,通知汇编程序每个段的名字。

DB定义字节类型的数据(8位)DW定义字类型的数据(16位)DD定义双字类型的数据(32位)DQ定义4字类型的数据(64位)SEGMENT定义存储段开始ENDS指示段或者数据结构结束END 指示程序结束PROC定义过程开始ENDP指示过程结束EQU标号等于数据ORG设置段的起始地址DUP产生重复的字符或数据PTR指示一个指针FAR PTR定义一个远指针NEAR PTR定义一个近指针BYTE PTR指示为字节类型的数据DWORD PTR定义数据长度为双字QWORD PTR 指示数据长度为4字OWORD PTR指示为8进制字STACK堆栈段开始STRUC指定数据结构开始USES在过程中,自动将寄存器压栈USE16使用16位的指令模式USE32使用32位的指令模式ALIGN n按字边界起始的数据MACRO宏定义开始ENDM宏序列结束1.段定义伪指令段定义伪指令SEGMENT和ENDS格式:段名SEGMENT [定位类型] [组合类型] [类别]…段名ENDS例如:DATA SEGMENT‘DATA’BUFFER DB 100 DUP(?)COUNT DW 100DATA ENDS(1)定位类型:说明该段对起始地址的要求。

常用伪指令及其应用

常用伪指令及其应用
常用伪指令及其应用
伪指令(pseudo instructions)是一类特殊的指令,它不会被编译成机器指令而是被编译器转换为特定的机器指令,并且一般可以用于汇编语言程序中。

1. ORG指令:
ORG指令是最常见的伪指令,它用于指定程序在被装载到计算机存储器中的位置。

它通常的格式是ORG address, address是要求程序地址的起始位置。

ORG指令是汇编程序的一个标记指令,指定下一条指令的装载地址,它不产生机器指令。

2. EQU指令:
EQU指令是给变量赋值的指令,它的格式通常为symbol=exprssion,其中symbol是变量,expression是一个表达式,用于给变量symbol赋值,或者指定程序中用作标记的某个地址。

3. DS指令
DS指令是在程序中定义一段存储空间的指令,它的格式一般为DS size,其中size为所要定义存储空间的大小,该指令中定义的变量没有初始值,在程序中可以用于定义数组等多种形式。

4. END指令
END指令是汇编程序的结束指令,它的格式为END symbol,其中symbol可以是一个标记,用来标记汇编程序的起始地址,也可以是一个数字,用来标记程序的起始地址。

5. IF指令
IF指令是汇编中的条件指令,它的格式为IF expression,其中expression可以是一个比较运算的表达式,当表达式的结果为真(1)时,IF中的条件成立,程序就会按照正确的执行步骤进行操作,否则,IF指令中的语句就会被忽略。

微机常用指令伪指令_2012

常用指令、常用伪指令一、常用指令:(一)数据传送指令MOV d,sPUSH sPOP dLEA d,sIN 累加器,端口OUT 端口,累加器(二)算术运算指令ADD d,sADC d,sINC dSUB d,sSBB d,sDEC dCMP d,sMUL sIMUL sDIV sIDIV s(三)逻辑运算和移位循环指令AND d,sOR d,sXOR d,sNOT dTEST d,sSAL d,countSAR d,countSHL d,countSHR d,countROL d,countROR d,countRCL d,countRCR d,count(四)串操作指令MOVSB / MOVSWCMPSB /CMPSWSCASB / SCASWLODSB / LODSWSTOSB / STOSW重复前缀:REP,REPE/REPZ,REPNE/REPNZ(五)程序控制指令JMP 目标标号CALL 过程名RETJA 目标标号JAE 目标标号JB 目标标号JBE 目标标号JG 目标标号JGE 目标标号JL 目标标号JLE 目标标号JC 目标标号JNC 目标标号JE/JZ 目标标号JNE/JNZ 目标标号LOOP 目标标号INT 中断类型IRET(六)处理器控制指令CLDSTDCLISTIHLTNOP二、常用伪指令1、数据定义DB(定义字节);DW(定义字);DD(定义双字);重复算符DUP;DB ’字符串’DW <地址表达式>、DD <地址表达式> (教材P139例4.25)2、符号定义名字EQU <表达式>3、段定义段名SEGMENT……段名ENDS4、ASSUME伪指令5、ORG 伪指令6、过程定义过程名PROC [类型]…….过程名ENDP7、程序结束END <表达式>运算符:PTR、SEG、OFFSET、LENGTH、SIZE、$-符号地址。

第四章伪指令

第四章伪指令汇编语言源程序由一系列语句构成,这些语句既可以是指令,也可以是伪指令。

指令是由CPU负责执行的,每一条指令都和一条机器语言相对应。

而伪指令是由汇编程序负责执行,完成一些内存单元分配、段之间的连接关系等操作,所以伪指令并不会生成机器指令,也就不会被CPU执行。

在本章中,重点讲解一些常用的伪指令及其功能。

4.1伪指令的分类及伪指令语句格式伪指令又称为伪操作,它虽然不会被CPU执行,但却可以指示汇编程序按照用户的意图,完成数据的定义、存储器的分配、指示程序结束等功能。

所以伪指令在汇编语言程序设计过程中具有重要的意义,希望读者在学习过程中应该加以高度重视。

4.1.1 伪指令的分类8088/8086的伪指令大致可分为以下八类:·数据定义伪指令;·符号定义伪指令;·段定义伪指令;·过程定义伪指令;·结束伪指令;·条件汇编伪指令;·结构、记录定义伪指令;·其他伪指令。

其中,条件汇编伪指令与结构、记录定义伪指令将在第八章予以介绍。

4.1.2 伪指令语句格式伪指令语句格式一般由四部分组成。

语句格式: [变量] 伪指令助记符参数1,参数2····参数n[;注释]说明:伪指令助记符规定了伪指令的功能。

一般伪指令都有参数,用于说明伪指令的操作对象,参数的类型和个数随着伪指令的不同而不同。

有时参数是常数或数值表达式,有时参数是一般的符号,有时是具有特殊意义的符号。

伪指令语句中的变量可有可无,如果伪指令语句中出现变量,则汇编程序使其记以第一个字节的偏移地址。

注释部分也是可有可无的,用于说明该伪指令的功能。

例如 VAR1 DW 1234H,5678H ;定义VAR1为字变量该语句中的VAR1为变量;DW为伪指令助记符;1234H与5678H为参数;分号后面给出的文字为注释。

4.2汇编语言中的数据项数据项是指令或伪指令语句操作对象的基本组成部分。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用指令、常用伪指令
一、常用指令:
(一)数据传送指令
MOV d,s
PUSH s
POP d
LEA d,s
IN 累加器,端口
OUT 端口,累加器
(二)算术运算指令
ADD d,s
ADC d,s
INC d
SUB d,s
SBB d,s
DEC d
CMP d,s
MUL s
IMUL s
DIV s
IDIV s
(三)逻辑运算和移位循环指令
AND d,s
OR d,s
XOR d,s
NOT d
TEST d,s
SAL d,count
SAR d,count
SHL d,count
SHR d,count
ROL d,count
ROR d,count
RCL d,count
RCR d,count
(四)串操作指令
MOVSB / MOVSW
CMPSB /CMPSW
SCASB / SCASW
LODSB / LODSW
STOSB / STOSW
重复前缀:REP,REPE/REPZ,REPNE/REPNZ
(五)程序控制指令
JMP 目标标号
CALL 过程名
RET
JA 目标标号
JAE 目标标号
JB 目标标号
JBE 目标标号
JG 目标标号
JGE 目标标号
JL 目标标号
JLE 目标标号
JC 目标标号
JNC 目标标号
JE/JZ 目标标号
JNE/JNZ 目标标号
LOOP 目标标号
INT 中断类型
IRET
(六)处理器控制指令
CLD
STD
CLI
STI
HLT
NOP
二、常用伪指令
1、数据定义
DB(定义字节);DW(定义字);DD(定义双字);
重复算符DUP;
DB ’字符串’
DW <地址表达式>、DD <地址表达式> (教材P139例4.25)2、符号定义
名字EQU <表达式>
3、段定义
段名SEGMENT
……
段名ENDS
4、ASSUME伪指令
5、ORG 伪指令
6、过程定义
过程名PROC [类型]
…….
过程名ENDP
7、程序结束
END <表达式>
运算符:PTR、SEG、OFFSET、LENGTH、SIZE、$-符号地址。

相关文档
最新文档