




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及应用 信息与电气工程学院孙秀娟 操作数的寻址方式 2 寄存器寻址方式 1 立即数寻址方式 3 直接寻址方式 4 寄存器间接寻址方式 5 寄存器相对寻址方式 6 基址加变址寻址方式 7 相对基址加变址寻址方式 说明操作数所在的地址 回顾 8 带比例存储器寻址方式 IA 32指令系统 分成以下6类 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令 4 2数据传送类指令 把数据从一个位置传送到另一个位置指令分5组数据传送指令 MOV XCHG XLAT堆栈操作指令 PUSH POP地址传送指令 LEA LDS LES 第4章IA 32指令系统 1 传送指令MOV 把一个字节 字或双字的操作数从源位置传送至目的位置 并非任意传送 一 数据传送指令 双操作数必须类型一致操作数必须有明确的类型 常见错误指令 MOVAL 050AHMOVSI DLMOV BX 12HMOV BX BP MOVDS ESMOVDS 100H No AX DI BYTEPTR BX 12H 将源操作数和目的操作数内容交换通用寄存器与通用寄存器之间通用寄存器或存储器之间 xchgeax ebxxchgdl dhxchgal edi 2 交换指令XCHG exchange 2 交换指令XCHG exchange MOVAX 1234HMOVBX 5678HXCHGAX BXXCHGAH AL 例 xchgax 2000h xchgal 2000h xchgbx bp 14h 不能在存储单元之间直接交换立即数或段寄存器不能作为操作数 将源操作数和目的操作数内容交换通用寄存器与通用寄存器之间通用寄存器或存储器之间空操作指令NOP XCHGAX AX微处理器执行空操作该指令 需要化费时间 在主存中也要占用一个字节空间实现短时间延时临时占用代码空间 xchgeax ebxxchgdl dhxchgal edi 2 交换指令XCHG exchange 3 换码指令XLAT translate 例 MOVBX offsetTABLEMOVAL 3HXLAT TABLE DB0DB1DB4DB9DB16DB25 3 AL 9 执行过程 BX AL 用DS为段基址 BX AL为偏移量获得20位物理地址 把该单元的内容传送至AL 3 换码指令XLAT translate 段码表 换码显示程序 数据段numdb6 7 7 8 3 0 0 0tabdb 0123456789 换码显示程序 代码段movecx lengthofnummovesi offsetnummovebx offsettabagain moval esi xlatmovdl almovah 2int21haddsi 1loopagain 二 堆栈操作指令 先进后出FILO 存取的存储区域 只有一个数据出入口 即当前栈顶 不断变化 两种基本操作数据压进堆栈操作PUSH数据弹出堆栈操作POPSS指向堆栈段的起始位置ESP指定栈顶数据进入堆栈 ESP逐渐减小数据弹出堆栈 ESP逐渐增大 Word1 Word2 Word3 Word4 Word5 Stack PUSH POP 1 入栈指令PUSH 执行过程先将ESP减小作为当前栈顶然后将源操作数 立即数 通用寄存器内容 段寄存器内容 存储器操作数 传送到当前栈顶以字或双字为单位操作进栈字量数据时 ESP减2进栈双字量数据时 ESP减4 AX Stack PUSH 2 pushaxpushebx 2 出栈指令POP 执行过程先将栈顶数据传送到目的操作数 通用寄存器 存储单元 段寄存器 然后ESP增加作为当前栈顶以字或双字为单位操作出栈字量数据时 ESP加2出栈双字量数据时 ESP加4 Word1 Stack POP 2 popaxpopebx 例 堆栈操作程序 数据段ten 10wvardw0100h 1349hdvardd67762000h 12345678h 代码段movax wvarpushaxpushwordptrtenpushdvarpopedxpopaxpopwvar 2 3 堆栈的应用 堆栈不可或缺 被很多指令使用堆栈操作指令子程序调用CALL 返回RET中断调用INT 返回IRET内部异常 外部中断等堆栈可用来临时存放数据 以便随时恢复它们常利用堆栈基址指针EBP 随机读写堆栈数据movax ebp 8 AX SS EBP 8 mov ebp eax SS EBP EAX利用堆栈实现主程序与子程序间传递参数堆栈还常用于子程序的寄存器保护和恢复要注意入栈和出栈的数据要成对 要保持堆栈平衡 例 现场的保护和恢复 PUSHAX 进入子程序后PUSHBXPUSHDS POPDSPOPBXPOPAX 返回主程序前 练习 P944 10 获取存储器操作数的地址LEAr16 r32 mem r16 r32 mem的有效地址EA 不需类型一致 LEA指令类似地址操作符OFFSET的作用LEA指令在指令执行时计算出偏移地址OFFSET操作符是在汇编阶段取得变量的偏移地址LEA指令能获取汇编阶段无法确定的偏移地址OFFSET无需在执行时计算 指令执行速度更快 leabx bx si 0f62h movedi offsetvar 三 地址传送指令 有效地址传送指令LEA loadEA 例 MOVBX 0400HMOVSI 3CHLEABX BX SI 2000H BX 243CH 例 设 DI 0500H ES 0000H 内存单元 ES 050AH OOFFH 说明下列两条指令执行后AX的内容 LEAAX ES DI 10 MOVAX ES DI 10 2 指针传送指令 LDSr16 mem r16 mem DS mem 2 LESr16 mem r16 mem ES mem 2 例 地址指针的传送 movwordptr 3060h 0100hmovwordptr 3062h 1450hldssi 3060h lesdi 3060h ds 1450h si 0100h es 1450h di 0100h 作业 判断对错 并说明原因 1 MOVAH BX 2 MOV SI BX 3 MOVAX SI DI 4 MOVAX BX BP 5 MOVBX ES AX 6 MOVBYTEPTR BX 1000 7 MOVCS AX 8 XCHGAL 40H 9 XCHGES AX 4 3算术运算类指令 实现二进制 BCD码数据的四则运算1 加法运算 ADD ADC INC2 减法运算 SUB SBB DEC NEG CMP3 乘法运算 MUL IMUL4 除法运算 DIV IDIV5 符号扩展 CBW CWD6 十进制调整 DAA DAS AAA AAS AAM AAD 1 加法指令ADD 目的操作数加上源操作数 和送到目的操作数ADDdest src dest dest src按照定义影响6个状态标志位moveax 0aaff7348h EAX AAFF7348Haddal 27h AL 6FH OF 0 SF 0 ZF 0 PF 1 CF 0addax 3fffh AX B36EH OF 1 SF 1 ZF 0 PF 0 CF 0addeax 88000000h EAX 32FFB36EH OF 1 SF 0 ZF 0 PF 0 CF 1 一 加法 标志 2 带进位加法指令ADC 两个操作数相加 再加CF 结果送目的操作数按照定义影响6个状态标志位ADCdest src dest dest src CF用于与ADD指令相结合实现多精度数的加法movax 7856h AX 7856Hmovdx 8234h DX 8234Haddax 8998h AX 01EEH CF 1adcdx 1234h DX 9469H CF 0 3 增量指令INC increment 只有一个操作数 寄存器或存储单元对操作数加1 增量 再将结果返回原处INCreg mem reg mem reg mem 1用于计数器和地址指针的调整不影响进位CF标志 但影响其他状态标志位incbxincecxincwvarinc bx di 06h 1 减法指令SUB subtract 目的操作数减去源操作数 差送到目的操作数SUBdest src dest dest src按照定义影响6个状态标志位 二 减法 2 带借位减法指令SBB 两个操作数相减 再减CF 结果送目的操作数按照定义影响6个状态标志位SBBdest src dest dest src CF用于与SUB指令相结合实现多精度数的减法 例 减法程序 movax 4652h ax 4652hmovdx 0234h dx 0234hsubax 0f0f0h ax 5562h CF 1sbbdx 0f0f0h dx 1143h CF 1 3 减量指令DEC decrement 对操作数减1 减量 再将结果返回原处DECreg mem reg mem reg mem 1用于计数器和地址指针的调整不影响进位CF标志 但影响其他状态标志位decbxdececxdecwvardec bx di 06h 4 求补指令NEG negative 对操作数执行求补运算 即用零减去操作数NEGreg mem reg mem 0 reg mem对标志的影响与用零作减法的SUB指令一样可用于求补码 绝对值 movax 0ff64h AX FF64Hnegal AL 9CH OF 0 SF 1 ZF 0 PF 1 CF 1subal 9dh AL FFH OF 0 SF 1 ZF 0 PF 1 CF 1negax AX 0001H OF 0 SF 0 ZF 0 PF 0 CF 1decal AL 00H OF 0 SF 0 ZF 1 PF 1 CF 1negax AX 0000H OF 0 SF 0 ZF 1 PF 1 CF 0 例 求补指令程序 5 比较指令CMP compare 将目的操作数减去源操作数差值不回送目的操作数按照减法结果影响状态标志CMPdest src dest src根据标志状态获知两个操作数的大小关系其后常跟条件转移指令 SUB与CMP 例 比较AL是否大于100 CMPAL 100 al 100JBbelow al 100 跳转到below执行SUBAL 100 al 100 al al 100INCAH ah ah 1below 三 乘法 例 无符号和有符号数的乘法 moval 0b4hmovbl 11hmulbl moval 0b4hmovbl 11himulbl al b4h 180 bl 11h 17 ax 0bf4h 3060 OF CF 1 AX高8位是有效数字 al b4h 76 bl 11h 17 ax faf4h 1292 OF CF 1 AX高8位是有效数字 无符号数除法指令DIVsrc有符号数除法指令IDIVsrc 四 除法 例 无符号和有符号数的除法 movax 0400hmovbl 0b4hdivbl movax 0400hmovbl 0b4hidivbl ax 400h 1024 bl b4h 180 商al 05h 5 余ah 7ch 124 ax 400h 1024 bl b4h 76 商al f3h 13 余ah 24h 36 除法指令可能产生除法溢出对DIV指令除数为0字节除时商超过8位字除时商超过16位双字除时超过32位对IDIV指令除数为0字节除时商不在 128 127范围内字除时商不在 32768 32767范围内双字除时商不在 231 231 1范围内除法错溢出 将产生编号为0的内部中断 四 零位扩展和符号扩展指令 五 标志操作指令 1 直接操作标志寄存器标志位操作指令 直接改变CF DF IF标志 五 标志操作指令 2 标志寄存器低字节LAHF指令 将标志寄存器低字节传送到AH寄存器SAHF指令 将AH寄存器传送到标志寄存器低字节标志寄存器低字PUSHF指令 压入堆栈POPF指令 从栈顶弹出全部标志寄存器PUSHFD指令 压入堆栈POPFD指令 从栈顶弹出 六 十进制调整 算术运算指令实现二进制数的加减乘除十进制BCD码运算 对二进制运算结果调整压缩BCD码 调整指令 加法DAA 减法DAS非压缩BCD码 调整指令 加法AAA 减法AAS乘法AAM 除法AADASCII码可以认为是非压缩BCD码 六 十进制调整 DAA 两个以压缩BCD码表示的十进制数相加用二进制数加法指令对两数进行二进制数加法运算用DAA指令对计算结果 AL 进行修正执行过程若AL中低4位的值大于9或者辅助进位标志AF 1 对其进行加6修正若AL中高4位的值大于9或者进位标志CF 1 对其进行加6修正 例1 压缩BCD码的加减 DAA DAS 实现压缩BCD码加法 48H 69H 117HMOVAL 48H al 48hMOVBL 69H bl 69hADDAL BL 二进制加法al 48h 69h B1hDAA 十进制调整 CF 1 a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版特色农家乐经营权转让合同下载
- 2025版特种设备检测委托合同范本
- 2025版社区邻里共建健身活动协议书
- 2025年船舶份额买卖及船舶进出口代理服务合同
- 2025版工厂用工劳动合同加班费计算规范
- 2025年版危险货物运输企业安全生产责任及环境保护合同范本
- 2025年度男女朋友恋爱期间财产共有管理及分手补偿协议书
- 2025年度城市绿化工程单项劳务分包合同模板
- 2025版环保设备融资租赁执行合同
- 2025版房地产开发项目融资借款合同范本
- 2025北师大版三年级数学上册 第二单元 测量(二) 单元教学设计
- 高原施工保障方案
- 幼小可爱卡通家长会通用
- 中西医治疗高血压课件
- TOP100经典绘本课件-《大卫上学去》
- 《古代汉语(II)》课程教学大纲(本科)
- 高血压病人健康教育
- 2021年医院院感知识竞赛理论题目含答案
- 菌种购入、使用、销毁记录表单
- 初中英语教研组团队建设PPT课件
- 六年级上学期综合实践课教案
评论
0/150
提交评论