好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基本指令与简单程序设计.ppt

93页
  • 卖家[上传人]:宝路
  • 文档编号:47656848
  • 上传时间:2018-07-03
  • 文档格式:PPT
  • 文档大小:648.65KB
  • / 93 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第3章 基本指令与简单程序设计 第3章 基本指令与简单程序设计 3.1 寻址方式 3.2 基本指令 3.3 单个字符的输入输出 3.4 源程序的基本格式 3.5 顺序程序设计 习题三 第3章 基本指令与简单程序设计 3.1 寻 址 方 式 3.1.1 立即数型寻址方式这种寻址方式又称为立即数或立即寻址,是直接把参与操作的数据写在指令中用汇编语言书写时,操作数可以是各种数制下的数值,也可以是带单引号的字符比如,下面的MOV指令中源操作数都是立即寻址的简单情况汇编语言要求指令在一行写完,指令后面所带的分号表示该行的后续内容是注释 第3章 基本指令与简单程序设计 MOV AL,30;源操作数是十进制形式的立即数30MOV AX,3030H;源操作数是十六进制形式的立即数3030HMOV AL,11001101B;源操作数是二进制形式的立即数11001101BMOV AL,'3' ;源操作数是字符形式的立即数'3',即其ASCII值33H尽管MASM支持把立即数加上方括号的写法,比如上面的第一条指令也可以写成MOV AL,[30]但是,这会导致初学者概念上的混淆,建议读者不要使用这种 写法。

      第3章 基本指令与简单程序设计 立即寻址还有一些比较复杂的情况如果操作数是由数值和运算符构成的表达式,汇编程序在翻译时会计算出表达式的值,并把计算结果以立即数形式翻译到机器指令中比如下面的指令中源操作数就是这种情况:MOV AL,'3'-30H该指令中的源操作数是一个可直接计算的表达式汇编程 序会计算出表达式的值是3,并以3作为立即寻址方式的源操作数 第3章 基本指令与简单程序设计 3.1.2 寄存器型寻址方式这种寻址方式比较简单,就是在指令的操作数部分写寄存器的名称可用的名称有:AH,AL,BH,BL,CH,CL,DH,DL —— 8位通用寄存器;AX,BX,CX,DX,SI,DI,BP,SP —— 16位通用寄存器;CS,DS,ES,SS —— 16位的段寄存器第3章 基本指令与简单程序设计 下面的指令中所有操作数都是寄存器寻址方式MOV AL,BLMOV AL,DHMOV BP,SPMOV AX,SIMOV AX,CSMOV DS,DX 第3章 基本指令与简单程序设计 【注意】 指令指针IP、标志寄存器PSW以及所有标志位的代号CF、ZF、OF等都不能作为寄存器寻址方式的操作数,不允许出现在汇编语言的任何指令中。

      另外,8088汇编语言还规定,不允许用MOV等具有赋值功能的指令修改CS的值,也就是说,类似于“MOV CS,AX”试图对CS赋值的指令在8088汇编语言中是不允许的 第3章 基本指令与简单程序设计 3.1.3 内存型寻址方式 内存型寻址方式是指参与操作的数据在内存中,因此必须指明操作数究竟在内存的什么地方,即指出内存的逻辑地址 逻辑地址的段地址部分来自某个段寄存器每一个内存型操作 数都有一个不需要在指令中写出的缺省段寄存器与之对应,如 果就以这个缺省段寄存器的值作为段地址,则指令中只要确定 偏移地址即可但是,有时指令中需要使用其它段寄存器而不 用缺省段寄存器作为段地址,这时就要先写出需要使用的段寄 存器的名字,后面加冒号“:”,再接偏移地址的各种写法这种不用缺省段寄存器而明确写出段寄存器名称的方式称为“ 段跨越”按照确定操作数偏移地址的不同方法,内存型寻址 又细分为5种具体情况,分别称为直接寻址、寄存器间接寻址 、寄存器相对寻址、基址变址和相对基址变址 第3章 基本指令与简单程序设计 3.1.3.1 直接寻址这种寻址方式是在指令中直接写明操作数所在的偏移地址在汇编语言中,这个偏移地址通常以变量的形式出现,在指令中就是直接写变量的名字。

      变量名字与偏移地址之间存在固定的对应关系,在源程序中写变量的名字,汇编程序会把名字翻译成相应的偏移地址确立这种对应关系的方法是定义变量 定义变量的具体写法在第5章中加以说明,在此需要说明的是,定义变量时会说明它的类型(字节、字或者双字),定义后的变量就有了一个确定的偏移地址,程序中还会有伪指令说明变量对应的缺省段寄存器是哪一个也就是说,每个已定义的变量都有缺省段寄存器与之对应,都有固定的偏移地址和类型 第3章 基本指令与简单程序设计 设buf是已经定义的字节型变量,指令“MOV AL,[buf]”中源操作数寻址方式就是直接寻址用方括号把变量名字括起来 是直接寻址的基本写法上述指令中的“[buf]”表示以变量buf对应的偏移地址和缺省段寄存器中的值作为完整的逻辑地址,操作数在逻辑地址所确定的内存单元中假定上述指令中变量buf的缺省段寄存器是DS,执行上述指令时DS的值是1234H,buf的偏移地址是0ABCDH,则物理地址的形成可用图3.1表示,图中数据均为十六进制 第3章 基本指令与简单程序设计 图3.1 直接寻址方式下操作数的物理地址的形成 第3章 基本指令与简单程序设计 直接寻址方式可以使用段跨越。

      下面是两个使用段跨越的例子 :MOV AL,CS:[buf]MOV AL,ES:[buf]使用段跨越时物理地址的形成方式,只要在图3.1中把段寄存器DS换成段跨越符号所指明的段寄存器即可MASM V5.0还支持不写方括号的直接寻址方式,前面的3个例子可以写成如下形式:MOV AL,bufMOV AL,CS:bufMOV AL,ES:buf 第3章 基本指令与简单程序设计 变量占据内存空间的大小是以字节为单位的,一个变量 并不一定只占一个字节,2.3节就已说明了一个变量占多个字节时在内存中如何安排汇编语言中还有类似高级语言的数 组变量的形式假定变量buf是存放5个数据的数组,每个数据是字节型,所以共占5字节现在需要取它的第3个数据送到寄存器AL中,又该怎么写呢?很简单,可以在变量名的后面用加号连接一个数值的形式书写,比如:MOV AL,[buf+2] 第3章 基本指令与简单程序设计 对字节型数组变量buf,分别用[buf]、[buf+1]、[buf+2]、[buf+3]和[buf+4]依次对应它所占据的5个字节的偏移地址汇编程序在翻译这种“[变量±数值]”的写法时,先找出变量名所对应的偏移地址,再与另一个数值相加(如果是用减号连接则计算出两者的差),计算结果作为操作数的偏移地址,以直接寻址方式翻译到机器指令中。

      如果buf变量所占据的5个字节中依次存放的是1、2、3、4、5,上述指令取到AL中的数据会是3而不是2尽管下面的写法与上述指令完全等同,但也不建议使用:MOV AL,buf[2] 第3章 基本指令与简单程序设计 3.1.3.2 寄存器间接寻址这种寻址方式是把一个基地址寄存器或变址寄存器中的字型数据当作偏移地址,写法是以该寄存器的名字加上方括号这表示寄存器的内容作为偏移地址,而不是参与操作的数据本身,操作数需要到内存中去找注意与寄存器寻址相区分下面的例子中源操作数都是寄存器间接寻址方式MOV AL,[BX]MOV AL,[SI]MOV AL,[BP] 第3章 基本指令与简单程序设计 【注意】 并不是所有的通用寄存器都能加上方括号,按寄存器间接寻址方式到内存去寻找操作数8088汇编语言规定,只有基址寄存器BX和BP,变址寄存器SI和DI共4个寄存器可以作为间接寻址方式使用的寄存器 第3章 基本指令与简单程序设计 如果需要,寄存器间接寻址方式也可以使用段跨越,比如:MOV AL,DS:[BP]MOV AL,ES:[BX]MOV AL,SS:[DI]直接寻址和寄存器间接寻址是汇编语言中内存型操作数最常用的两种寻址方式。

      如果与高级语言相比较,直接寻址相当于高级语言中的整数、字符等类型的简单变量,而寄存器间接寻址则相当于指向某种数据类型的指针变量 第3章 基本指令与简单程序设计 3.1.3.3 寄存器相对寻址寄存器相对寻址又称作变址寻址,是以一个基址寄存器或变址寄存器中的值与一个字型数据相加,相加的结果作为偏移地址相加的结果如果超过16位二进制,超出部分会被忽略从书写形式上说,以下几个例子中的源操作数都采用了正确形式的寄存器相对寻址方式,其中的标识符buf是已经定义的变量但是,建议读者在编程时尽量使用第1、第3和第5个例子的写法,以清楚地表明偏移地址是两个数据相加而来其中的方括号不能省略,方括号中不允许出现一个变量减一个寄存器的写法 第3章 基本指令与简单程序设计 MOV AL,[buf+SI]MOV AL,buf[DI]MOV AL,[buf+BP]MOV AL,buf[BX]MOV AL,[BX+15]汇编语言中还支持更复杂的寄存器相对寻址写法,下面是几个这样的例子MOV AL,[buf+BX+3]MOV AL,[BX-30H] 第3章 基本指令与简单程序设计 对于“[buf+BX+3]”的写法,汇编程序会先把buf对应的偏移地址与数值3相加,得到的和与BX一起,以寄存器相对寻址的形式翻译到机器指令中;对于“[BX-30H]”,汇编程序会把-30H翻译成相应的补码形式,即0FFD0H,并把减法转变成加法。

      前面几个例子说明了寄存器相对寻址方式下偏移地址的处理方法,但段地址从何而来呢?这里当然也存在缺省段寄存器的问题 第3章 基本指令与简单程序设计 寄存器相对寻址的缺省段寄存器按下列规则处理:(1) 如果是“[变量+寄存器]”的形式,以变量对应的缺省段寄存器为准2) 如果是“[寄存器+数值]”的形式,则以寄存器对应的缺省段寄存器为准3) 寻址方式中不允许同时出现两个或两个以上的变量相加的情况,但可以出现两个变量相减减法表示两个变量偏移 地址的差值,这个差值不再作为变量看待,而是当作数值,此 时缺省段寄存器按第(2)条处理以指令“MOV AL,[BX+15]”为例,源操作数采用了寄存 器相对寻址,形成物理地址的方式如图3.2所示 第3章 基本指令与简单程序设计 图3.2 寄存器间接寻址方式下物理地址的形成 第3章 基本指令与简单程序设计 【例3.1】 设变量buf1和buf2定义在同一个段中,偏移地址分别是102H和3ACH,两个变量对应的缺省段寄存器都是ES,寄存器BX和BP的值分别是2000H和3000H试计算下列各指令中源操作数的偏移地址值,并判断缺省段寄存器是哪一个1) MOV AL,[buf1+BX](2) MOV AL,[BX+13](3) MOV AL,[BP+buf1-buf2](4) MOV AL,[buf2+BP-4000H] 第3章 基本指令与简单程序设计 【解】 (1) 偏移地址为 102H+2000H=2102H 段寄存器为buf1对应的缺省段寄存器ES。

      (2) 偏移地址为 2000H+13=200DH 段寄存器为BX对应的缺省段寄存器DS (3) 偏移地址为 3000H+102H-3ACH=2D56H 段寄存器为BP对应的缺省段寄存器SS (4) 偏移地址为 3ACH+3000H-4000H=0F3ACH 段寄存器为buf2对应的缺省段寄存器ES 第3章 基本指令与简单程序设计 【例3.2】 设arr是一个整型数组变量,其中存放了10个字型带符号整数,用C语言写出相应的变量定义,编写程序段显示该数组中各元素的值;并说明如果使用汇编语言的寄存器相 对寻址方式[arr+BX]分别去取各元素,BX应如何变化解】 C语言的变量定义为int arr[10];程序段写作:for(i=0;i<10;i++)printf(“%d\n”,arr[i]); 第3章 基本指令与简单程序设计 在汇编语言中,如果要用[arr+BX]的形式分别访问各元素,则BX应分别取值为十进制的0、2、4、6、8、10、12、14、16、18,即每次加2,因为每个整数(字型带符号数)占2字节在C语言中,下标变量i从0到9逐个递增,而。

      点击阅读更多内容
      相关文档
      2024年统编版7年级上册道德与法治课件 3.8.2 敬畏生命.pptx 2024年统编版7年级上册道德与法治课件 1.2.2 做更好的自己.pptx 2024秋新人教PEP英语3年级上册课件 Unit 4 PartA(1) Let’s talk & Ask and answer.pptx 2024秋新人教版化学9年级上册教学课件 第5单元化学反应的定量关系 课题1 质量守恒定律.pptx 2024秋新人教版化学9年级上册教学课件 第1单元走进化学世界 课题2 化学实验与科学探究 第3课时 走进科学探究.pptx 2024秋新人教版化学9年级上册教学课件 第1单元走进化学世界 课题1 物质的变化和性质 第2课时 化学性质和物理性质.pptx 2024年统编版7年级上册道德与法治 第102课 端正人生态度 第1课时 拥有积极的人生态度教学课件.pptx 2024秋新人教版地理7年级上册教学课件 1.2.3 地球与地球仪(第3课时).pptx 2024秋新人教版化学9年级上册课件 第1单元走进化学世界 课题2 化学实验与科学探究 第3课时 走进科学探究.pptx 2024年统编版7年级上册道德与法治课件 4.11.1 探问人生目标.pptx 2024年统编版7年级上册道德与法治 3.8.2 敬畏生命 教学课件.pptx 2024秋新人教版地理7年级上册课件 1.2.3 地球与地球仪(第3课时).pptx 2024年统编版7年级上册道德与法治 3.8.1 认识生命 教学课件.pptx 2024秋新人教版化学9年级上册课件 第5单元化学反应的定量关系 课题1 质量守恒定律.pptx 2024年统编版7年级上册道德与法治 第103课 实现人生价值 第2课时 在奉献中成就精彩人生教学课件.pptx 2024秋新人教版化学9年级上册课件 第5单元化学反应的定量关系 课题2 化学方程式 第1课时 化学方程式的意义及书写.pptx 2024秋新人教版地理7年级上册教学课件 2.3 地图的选择和应用.pptx 2024年统编版7年级上册道德与法治课件 第103课 实现人生价值 第2课时 在奉献中成就精彩人生.pptx 2024秋新人教版化学9年级上册课件 第6单元 碳和碳的氧化物 课题3 2氧化碳的实验室制取.pptx 北师大版(2024)新教材七年级生物下册第四单元第10章第3节《激素调节》精品课件.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.