汇编语言程序设计基本方法2

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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的一个字节或一个字传送到目的操作数DST所指单元。•格式:MOVDST,SRC;(DST)(SRC)•其中SRC表示源操作数,DST表示目的操作数。•源操作数:通用寄存器、段寄存器、立即数和内存单元。•目的操作数:通用寄存器、段寄存器和内存单元。•常用的六种格式•(1)通用寄存器之间•(2)通用寄存器和存储单元之间•(3)通用寄存器和段寄存器之间•(4)段寄存器和存储单元之间•(5)立即数传送到通用寄存器•(6)立即数传送到存储单元•例如:•MOVAX,BX•MOVAL,DL•MOVAX,02•MOVSI,[BX]•MOVAL,4[DI]•MOVAX,[BX+2]•MOV[BX][DI],DX•变量的定义:•DATA1DW20H,30H•DATA2DB50H,60H,70H•DATA3DW10HDUP(?)•相应传送指令:•MOVAX,DATA1•MOVDATA3,BX•MOVAL,DATA2[DI]•MOVDATA3[SI],DX•MOVCX,LENGTHDATA3•MOVBX,SIZEDATA3•MOVSI,OFFSETDATA2•指令中传送的是一个字还是一个字节,通常由操作数的类型确定。•下列指令中,没有确定的类型,是错误的。•MOVDATA3[SI],02H•MOV2[SI],AL•MOV4[DI],02•可以采用如下方式纠正:•MOVBYTEPTR4[DI],02•如果两个操作数的类型不一致,也是错误的:•DATA1DW05H•DATA2DB0FH,10H,0AH•DATA3DB5DUP(?)•MOVAX,BL•MOVAL,DATA1•MOVBX,DATA3[SI]•可以采用如下方式纠正:•MOVAL,BYTEPTRDATA1内容归纳•(1)两操作数进行数据传送的正常通路•寄存器间接寻址、寄存器相对寻址、基址变址寻址和基址变址相对寻址方式只能使用变址寄存器DI,SI和基址寄存器BX,BP。•(3)寄存器相对寻址和寄存器基址变址相对寻址方式的位移量DISP可以是常量、变量,并且有多种书写方式•MOVAX,DISP[BX]•MOVAX,[BX+DISP]•MOVAX,[BX].DISP•MOVAX,[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目标寄存器,源操作数指针传送指令ADDRDD1A2B3C4DHLDSSI,ADDR4.数据交换指令XCHG操作数1,操作数2交换指令,操作数1、2不能同为内存操作数XCHGAX,[SI+0400H]3.2.1数据传送类指令5.堆栈操作指令堆栈PUSH源操作数进栈指令:先调整堆栈指针,再把源操作数压栈。PUSHAXPUSH[SI+5]3.2.1数据传送类指令–POP目标操作数–出栈指令:先将栈顶2字节送目标操作数,再调整堆栈指针。–POPAX–POP[SI+5]–PUSHF–POPF–16位标志寄存器进栈/出栈指令

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功