第3章__指令系统和寻址方式.ppt

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

第3章 指令系统和寻址方式 ;3.1 指令系统概述 ; 每条指令由两部分组成:操作码字段和地址码字段。格式如图3.1所示。; 根据地址码字段所给出地址的个数,指令格式可分为零地址、一地址、二地址、三地址和多地址指令。例如,停机HLT指令不需要操作数,是零地址指令;而增量指令(INC AX)和减量指令(DEC AX)等只需要一个操作数,是一地址指令。大多数指令需要双操作数,对于这种指令,现代计算机多采用二地址指令,分别称两个操作数为源操作数和目的操作数,指令运算结果存入目的操作数的地址中去。这样,目的操作数的原有数据将被取代。Intel 8086/8088的双操作数运算指令就采用这种二地址指令。 ; 指令中用于确定操作数存放地址的方法,称为寻址方式。如果地址码字段直接给出了操作数,这种寻址方式称为立即寻址;如果地址码字段指出了操作数所在的寄存器编号,称为寄存器寻址;如果操作数存放在存储器中,则地址码字段通过各种方式给出存储器地址,称为存储器寻址。 指令分为机器指令和汇编指令两种形式。前一种形式由基2码(二进制)组成,它是机器所能直接理解和执行的指令。但这种指令不好记忆,不易理解,难写难读。 ; 因此,人们就用一些助记符来代替这种基2码表示的指令,这就形成了汇编指令。汇编指令中的助记符通常用英文单词的缩写来表示,如加法用ADD,减法用SUB,传送用MOV等等。这些符号化了的指令使得书写程序、阅读程序和修改程序变得简单、方便,但计算机不能直接识别和执行,在把它交付给计算机执行之前,必须翻译成计算机所能识别的机器指令。这个翻译过程由一个被称为“汇编程序”的工具软件自动实现。汇编指令与机器指令是一一对应的,本书中的指令都使用汇编指令形式书写,便于读者学习和理解。 ;3.2 8086/8088 CPU的寻址方式; 操作数及操作结果存放的地点有三处:存放在指令的地址码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段或附加数据段中。与其对应的有三种操作数:立即操作数、寄存器操作数和存储器操作数。寻找这些操作数有三种基本寻址方式:立即寻址方式、寄存器寻址方式和存储器寻址方式。其中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址方式。 ; 1. 立即寻址 在立即寻址方式中,寻找的操作数紧跟在指令操作码之后。这种寻址方式在汇编语言格式中表示为 数字表达式 这个数字表达式的值可以是一个8位整数,也可以是一个16位整数。 【例3-1】 MOV AX,267 其中,“267”就是数字表达式,也就是立即寻址方式。 ; 【例3-2】 MOV AL AND 0FEH 其中, AND 0FEH”是一个数字表达式,是立即寻址方式。 【例3-3】 MOV AL,PORT1 其中,PORT1是一个用EQU定义的符号名,属于常数,因此它也是立即寻址方式。 【例3-4】 MOV AX,DATA1 其中,DATA1是定义的段名,实际上就是段地址,是一常数,?因此它也是立即寻址方式。 ; 汇编时,汇编程序首先计算出数字表达式的值,?然后将其写入指令的地址码字段,称其为立即数。格式如图3.2所示。 当机器执行这种寻址方式的指令时,从指令地址码字段中取出立即数,即是指令所需要的操作数。 ;【例3-5】 MOV AL,0FFH 操作过程的示意如图3.3所示。 【例3-6】 MOV AX,1234H 操作过程的示意如图3.4所示。;图3.3 8位立即寻址操作示意图 ;图3.4 16位立即寻址操作示意图; 由此看出,这种寻址方式不需要访问存储器而是立即从指令中取得操作数。这正是立即寻址方式名称的含义所在。 由于在这种寻址方式中操作数是指令的一部分,不能修改,而一般情况下,指令所处理的数据都是在不断变化的,比如本条指令的操作数是上一条指令的执行结果。因此,这种寻址方式只能适用于操作数固定的情况。例如,给某一寄存器赋初值或给某存储单元提供常数等。 ; 此外要注意,这种寻址方式不能用于单操作数指令;若用于双操作数指令,也只能用于源操作数字段,不能用于目的操作数字段。 2. 寄存器寻址 寻找的操作数放在某个寄存器中。这种寻址方式在汇编语言格式中表示为 寄存器名 比如:AL,BX,CX,DS,

文档评论(0)

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

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

1亿VIP精品文档

相关文档