微型计算机原理与接口技术(3).pptx

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机语言总的来说可以分成机器语言,汇编语言,高级语言三类。;高级语言:相对于汇编语言而言,它并不是特指某一种具体的语言,而 是包括了很多编程语言,如目前流行的vbsvcsfoxprosdelphi等,这些语言的语法s命令格式都各不相同。;第三章 8086的寻址方式和指令系统;一、立即寻址方式 所提供的操作数直接包含在指令中。它紧跟在操作码的后面,与操作码一起放在代码段区域中,如果立即数是16位数,则高字节存放在代码段的高地址单元中,低字节放在低地址单元中。如图所示。;二s寄存器寻址方式 在这种寻址方式下,操作数包含在寄存器中,由指令指定寄存器的名称。对于16位操作数,寄存器可以是AXsBXsCXsDX,SIsD1sSP和 BP等。对于8位操作数,则用寄存器AHsALsBHsBLsCHsCLsDH和DL。;三、直接寻址方式 1.直接寻址方式 在IBM PC机中,把操作数的偏移地址称为有效地址EA。使用直接寻址方式的指令时,存储单元的有效地址直接由指令给出,在它们的机器码中,有效地址存放在代码段中指令的操作码之后。而该地址单元中的数据总是存放在存储器中,所以必须先求出操作数的物理地址,然后再访问存储器,才能取得操作数。要注意的是当采用直接寻址指令时,如果指令中没有用前缀指明操作数存放在哪一段,则默认为使用的段寄存器为数据段寄存器DS,因此,操作数的物理地址=16×DS+EA= 10H×DS+EA。指令中有效地址上必须加一个方括号,以便与立即数相区别。 例如:MOV AX,[2000H] 例如:MOV AL,[2000H];2.段超越前缀 如果要对代码段、堆栈段或附加段寄存器所指出的存储区进行直接寻址,应在指令中指定段超越前缀。例如,数据若放在附加段中,则应在有效地址前加“ES:”,这里的冒号“:”称为修改属性运算符,计算物理地址时要用ES作基地址,而不再是默认值DS。 例如: MOV AX,ES:[500H] 该指令的源操作数的物理地址等于16×ES+500H。 3.符号地址 在汇编语言中还允许用符号地址代替数值地址,实际上就是给存储单元起一个名字,这样,如果要与这些单元打交道,只要使用其名字即可,不必记住具体数值是多少。 例如: MOV AX,AREA1 不过,光从指令的形式上看,AREAl不仅???代表符号地址,也可以表示它是一个16位的立即数,两者之间究竟如何来区别呢?程序中还必须事先安排说明语句也叫做伪指令来加以说明。;例如:AREA1 MOV 例如:AREA1 MOV;例如:MOV BX,[SI] 设DS=1000H,SI=2000H,(12000H)=318BH 则物理地址=16×DS+SI=10000H+2000H=12000H;五、寄存器相对寻址方式 操作数的有效地址是一个基址或变址寄存器的内容与指令中指定的 8位或16位位移量之和。这种寻址方式与寄存器间接寻址十分相似,主 要区别是前者在有效地址上还要加一个位移量。同样,当指令中使用 BX、 SI或DI寄存器时,段寄存器使用DS,当指定寄存器是BP时,段寄存器使 用SS。 例如:MOV BX,COUNT[SI];六、基址变址寻址方式 操作数的有效地址是一个基址寄存器(BX或BP)和一个变址寄存器 (SI或DI)的内容之和,两个寄存器均由指令指定。 若:基址寄存器为BX时,段址寄存器用DS则:物理地址=16×DS十BX十SI 或 =16×DS+BX十DI 若:基址寄存器为BP时,段址寄存器应用SS则:物理地址=16×SS十BP+SI;七、相对基址变址寻址方式 操作数的有效地址是一个基址寄存器和一个变址寄存器的内容,再加上指令中指定的8位或16位位移量之和。 若:基址寄存器为BX时,用DS作段寄存器 则:物理地址=l6×DS十BX十SI+8位或16位位移量或 =l6×DS十BX十DI+8位或16位位移量若:基址寄存器为BP时,用SS作段寄存器 则:物理地址=l6×DS十BP十SI+8位或16位位移量或 =l6×DS十BP十DI+8位或16位位移量 例如:MOV AX,MASK[BX][SI] 设:DS=2000H,BX=1500H,SI=0300H,MASK=0200H, (21A00H)=26BFH 则:物理地址=16×DS+BX+SI+MASK =20000H+1500H+0300H+0200H =21A00H 执行结果,AX=26BFH。 同样,上述指令也可写成: MOV AX,[MASK+BX+SI] MOV AX,200H[BX+SI] MOV AX,MASK[BX+SI];八、其它 1.隐含寻址 指令中不指明操作数,但有隐含规定的寻址方式,例如指令DAA,它的含义是对寄存器AL中的数据进行十进制数调整,结果仍保留在AL中。 2.I/O端口寻址 808

文档评论(0)

尹邦乐 + 关注
实名认证
内容提供者

尹邦乐

1亿VIP精品文档

相关文档