Debug命令大全课件.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Debug命令大全课件

第三章 寻址方式和指令系统;第一节 基本概念;寻址方式 操作码:规定所要执行的操作类型 指令 操作数:所要处理的数据或数据的位置信息 在操作数部分通常不是直接给出操作数的数据本身,而是给出该数据的位置信息,我们把如何获得数据的方式称为寻址方式。 例如:指令 MOV AX,1234H 在这条指令里有两个操作数,按照指令中所处的位置,将前者称为目的操作数,后者称为源操作数。该指令的作用是把数据1234H传送到AX中。源操作数是“立即”寻址方式,目的操作数是“寄存器”寻址方式。;第二节 寻址方式;(三)寄存器寻址 操作数放在微处理器内部的寄存器中,在指令中直接指出寄存器的名字。 立即寻址和寄存器寻址的例子在前面已经举过。 这三种寻址方式直接在处理器内部获得数据,操作速度快。 (四)存储器操作数的寻址方式 操作数存放在存储器中,指令执行时必须通过总线在存储器中存取操作数。EU根据指令中给出的寻址方式计算出16位的偏移量,称为有效地址(EA)送到BIU,经过地址加法器生成20位实际物理地址后对存储器进行操作。一般在表示EA时,用[操作数]表示。 计算EA要费时,进行总线操作较慢,所以存储器操作数寻址比前三种要慢。 1、直接寻址 MOV AX,[1234H] ;在源操作数中直接给出EA。; 在上例中,默认使用的是数据段,如果要使用其它段,可以使用段超越前缀声明。例如:MOV AX,ES:[1234H] 在指令中,有四个段超越前缀:CS、DS、ES、SS 2、间接寻址 MOV AX,[BX];在源操作数中给出一个表示EA的寄存器名。 可以表示EA的寄存器有4个BX、SI、DI、BP。 BP 默认使用堆栈段 BX SI 默认使用数据段 DI 3、相对寻址 MOV AX,[BX+1000H];在源操作数中给出的是寄存器和立即 数,EA是它们的和。 有时也写成:MOV AX,BX[1000H] 或 MOV AX,1000H[BX]; 在C语言中常使用的全局数组,一般写成x[0],x[1],x[2]等形式,实际上x在编译的时候就换成具体的在数据段中分配的位置,例如是1000H。 那么就是1000H[BX]这种形式。 4、基址变址寻址 MOV AX,[BX+SI];用基址寄存器和变址寄存器的和表示EA。 5、相对基址变址寻址 MOV AX,[BX+SI+1000H] 用基址寄存器、变址寄存器和立即数的和表示EA。 在对存储器中操作数寻址中,如果表示的EA中有BP,默认使用堆栈段;否则默认使用数据段。也可以使用段超越前缀来指明要使用的段。;(五)I/O端口操作数的寻址方式 操作数存放在I/O端口中,指令执行时必须通过累加器(AX或AL)存取操作数。在8086中端口地址是独立编址的,需要使用专门的指令来进行操作。共有2条:输入指令 IN 和 输出指令 OUT。 1、直接寻址 IN AL,60H;在端口寻址时,地址不需要加[ ]。 当端口地址可以用一个字节表示时,可以使用直接寻址。 2、间接寻址 MOV DX,1000H OUT DX,AL;实际上就是用DX来间接表示端口地址。 比较: MOV DX,AX;把寄存器AX中的数据传送到寄存器DX中。 OUT DX,AL ;把寄存器AL中的数据输出到DX所表示的I/O端口上去。;二、程序的寻址方式 (一)段内直接寻址 短跳转:把IP的内容加上一个字节补码数作为新的IP。 近调转:把IP的内容加上二个字节补码数作为新的IP。 (二)段内间接寻址 用寄存器或是存储器操作数的内容赋给IP。 (三)段间直接寻址 直接在指令中给出新的CS和IP内容。 (四)段间间接寻址 用存储器操作数的内容赋给CS和IP寄存器。 ;第三节 指令系统;附录 DEBUG软件的使用说明;执行A命令后所见到的画面:;3、显示内存命令 D 一般用法: —D 从当前地址开始显示128字节的内容 —D 地址 从指定位置开始显示128字节的内容 —D 地址1 地址2 显示指定位置内存单元的内容 4、修改内存单元命令 E 一般用法: —E 地址 显示指定地址的内存单元的内容并修改 —E 地址 数据 修改指定地址的内存单元的内容 多个数据可以用空格隔开;可以用回车完成修改。 5、显示并修改寄存器命令 R 一般用法: —R 显示所有寄存器的内容 —R寄存器名 显示并修改指定寄存器的内容;段地址和偏移量;标志寄存器内容的说明: 在D

文档评论(0)

dmdt5055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档