资源描述:
《汇编语言程序设计基本方法2.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.28086/8088指令系统指令类型:(1) 数据传送指令(2) 算术运算指令(3) 逻辑运算指令(4) 移位指令(5) 标志处理指令和CPU控制指令(6) 转移和循环控制指令(7) 调用和返回指令(8) 字符串操作指令(9)输入、输出指令缩写与符号OPR:操作数SRC:源操作数DST:目的操作数REG:寄存器CNT:计数DISP:位移量ADDR:地址EA:有效地址4.2.1数据传送类指令通用传送指令包括:传送指令进栈指令出栈指令交换指令1.传送指令(MOV)功能:将源操作数SRC的一个字节或一个字传送到目
2、的操作数DST所指单元。格式:MOVDST,SRC;(DST)(SRC)其中SRC表示源操作数,DST表示目的操作数。源操作数:通用寄存器、段寄存器、立即数和内存单元。目的操作数:通用寄存器、段寄存器和内存单元。常用的六种格式(1)通用寄存器之间(2)通用寄存器和存储单元之间(3)通用寄存器和段寄存器之间(4)段寄存器和存储单元之间(5)立即数传送到通用寄存器(6)立即数传送到存储单元例如:MOVAX,BXMOVAL,DLMOVAX,02MOVSI,[BX]MOVAL,4[DI]MOVAX,[BX+2]MOV[BX][DI],DX变量的定义
3、:DATA1DW20H,30HDATA2DB50H,60H,70HDATA3DW10HDUP(?)相应传送指令:MOVAX,DATA1MOVDATA3,BXMOVAL,DATA2[DI]MOVDATA3[SI],DXMOVCX,LENGTHDATA3MOVBX,SIZEDATA3MOVSI,OFFSETDATA2指令中传送的是一个字还是一个字节,通常由操作数的类型确定。下列指令中,没有确定的类型,是错误的。MOVDATA3[SI],02HMOV2[SI],ALMOV4[DI],02可以采用如下方式纠正:MOVBYTEPTR4[DI],02如果
4、两个操作数的类型不一致,也是错误的:DATA1DW05HDATA2DB0FH,10H,0AHDATA3DB5DUP(?)MOVAX,BLMOVAL,DATA1MOVBX,DATA3[SI]可以采用如下方式纠正:MOVAL,BYTEPTRDATA1内容归纳(1)两操作数进行数据传送的正常通路寄存器间接寻址、寄存器相对寻址、基址变址寻址和基址变址相对寻址方式只能使用变址寄存器DI,SI和基址寄存器BX,BP。(3)寄存器相对寻址和寄存器基址变址相对寻址方式的位移量DISP可以是常量、变量,并且有多种书写方式MOVAX,DISP[BX]MOVAX,
5、[BX+DISP]MOVAX,[BX].DISPMOVAX,[BX]+DISP(4)段寄存器不是DS,而是ES时,用如下方式表示:MOVAX,ES:[SI]对BP寄存器MOVAL,DATA2[BP];对应DS段MOVAL,10[BP];对应SS段3.2.1数据传送类指令2、取有效地址指令(LEA)将源操作数SRC的有效地址(偏移地址)送入寄存器REG中比较:MOVAX,10H[DI]LEAAX,10H[DI](DI)=0500H,(DS)=0200H3.2.1数据传送类指令3.取地址指针指令LDS/LES目标寄存器,源操作数指针传送指令ADD
6、RDD1A2B3C4DHLDSSI,ADDR4.数据交换指令XCHG操作数1,操作数2交换指令,操作数1、2不能同为内存操作数XCHGAX,[SI+0400H]3.2.1数据传送类指令5.堆栈操作指令堆栈PUSH源操作数进栈指令:先调整堆栈指针,再把源操作数压栈。PUSHAXPUSH[SI+5]3.2.1数据传送类指令POP目标操作数出栈指令:先将栈顶2字节送目标操作数,再调整堆栈指针。POPAXPOP[SI+5]PUSHFPOPF16位标志寄存器进栈/出栈指令