微机原理与接口技术38086寻址方式与指令系统.ppt_第1页
微机原理与接口技术38086寻址方式与指令系统.ppt_第2页
微机原理与接口技术38086寻址方式与指令系统.ppt_第3页
微机原理与接口技术38086寻址方式与指令系统.ppt_第4页
微机原理与接口技术38086寻址方式与指令系统.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章,第3章 8086寻址方式与指令系统,第3章:3.3 数据传送类指令,数据传送是计算机中最基本、最重要的一种操作,传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位置 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV XCHG XLAT PUSH POP LEA,第3章: 3.3.1 通用数据传送指令,提供方便灵活的通用传送操作 有3条指令 MOV XCHG XLAT,MOV,XCHG,XLAT,第3章:1. 传送指令MOV(move),把一个字节或字的操作数从源地址传送至目的地址,MOV reg/mem,imm ;立即数送寄存器或主存,MOV reg/mem/seg,reg ;寄存器送(段)寄存器或主存,MOV reg/seg,mem ;主存送(段)寄存器,MOV reg/mem,seg ;段寄存器送寄存器或主存,演示,第3章:MOV指令立即数传送,mov cl,4 ;cl4,字节传送 mov dx,0ffh ;dx00ffh,字传送 mov si,200h ;si0200h,字传送 mov bvar,0ah ;字节传送 ;假设bvar是一个字节变量,定义如下:bvar db 0 mov wvar,0bh ;字传送 ;假设wvar是一个字变量,定义如下:wvar dw 0,明确指令是字节操作还是字操作,第3章:MOV指令寄存器传送,mov ah,al ;ahal,字节传送 mov bvar,ch ;bvarch ,字节传送 mov ax,bx ;axbx,字传送 mov ds,ax ;dsax,字传送 mov bx,al ;bxal,字节传送,寄存器具有明确的字节和字类型,第3章:MOV指令存储器传送,mov al,bx ;alds:bx mov dx,bp ;dxss:bp+0 mov dx,bp+4 ;dxss:bp+4 mov es,si ;esds:si,不存在存储器向存储器的传送指令,第3章:MOV指令段寄存器传送,mov si,ds mov ax,ds ;axds mov es,ax ;esaxds,对段寄存器的操作不灵活,第3章:MOV指令传送功能图解,MOV指令也并非任意传送!,非法指令的主要现象: 两个操作数的类型不一致 无法确定是字节量还是字量操作 两个操作数都是存储器 段寄存器的操作有一些限制,第3章:非法指令两个操作数类型不一致,在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令 MOV AL, 050AH ;非法指令,修正: ;mov ax,050ah MOV SI, DL ;非法指令,修正: ;mov dh,0 ;mov si,dx,第3章:非法指令无法确定是字节量还是字量操作,当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明 MOV BX+SI, 255 ;非法指令,修正: ;mov byte ptr bx+si,255 ;byte ptr 说明是字节操作 ;mov word ptr bx+si,255 ;word ptr 说明是字操作,第3章:非法指令两个操作数都是存储器,8088指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数) MOV buf2, buf1 ;非法指令,修正: ;假设buf2和buf1是两个字变量 ;mov ax,buf1 ;mov buf2,ax ;假设buf2和buf1是两个字节变量 ;mov al,buf1 ;mov buf2,al,第3章:非法指令段寄存器的操作有一些限制,8088指令系统中,能直接对段寄存器操作的指令只有MOV等个别传送指令,并且不灵活 MOV DS, ES ;非法指令,修正: ;mov ax,es ;mov ds,ax MOV DS, 100H ;非法指令,修正: ;mov ax,100h ;mov ds,ax MOV CS, SI ;非法指令 ;指令存在,但不能执行,第3章:2. 交换指令XCHG(exchange),把两个地方的数据进行互换,寄存器与寄存器之间对换数据 寄存器与存储器之间对换数据 不能在存储器与存储器之间对换数据,XCHG reg,reg/mem ;reg reg/mem,演示,第3章:例2.2 数据交换,mov ax,1199h ;ax=1199h xchg ah,al ;ax=9911h ;等同于 xchg al,ah mov wvar,5566h ;wvar是一个字量变量 xchg ax,wvar ;ax=5566h,wvar=9911h ;等同于 xchg wvar,ax xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h ;“byte ptr wvar+1”强制为字节量,只取高字节与AL类型交换,否则数据类型不匹配,第3章:3. 换码指令XLAT(translate),将BX指定的缓冲区中、AL指定的位移处的一个字节数据取出赋给AL,换码指令执行前: 在主存建立一个字节量表格,内含要转换成的目的代码 表格首地址存放于BX,AL存放相对表格首地址的位移量 换码指令执行后: 将AL寄存器的内容转换为目标代码,XLAT ;alds:bx+al,演示,第3章:3.3.2 堆栈操作指令,堆栈是一个“后进先出FILO”(或说“先进后出FILO”)的主存区域,位于堆栈段中;SS段寄存器记录其段地址 堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定 堆栈只有两种基本操作:进栈和出栈,对应两条指令PUSH和POP,图示,第3章:进栈指令PUSH,进栈指令先使堆栈指针SP减2,然后把一个字操作数存入堆栈顶部,PUSH r16/m16/seg ;SPSP2 ;SS:SPr16/m16/seg,演示,push ax push 2000h,第3章:出栈指令POP,出栈指令把栈顶的一个字传送至指定的目的操作数,然后堆栈指针SP加2,POP r16/m16/seg ; r16/m16/segSS:SP ;SPSP2,pop ax pop wvar,演示,第3章:堆栈操作的特点,堆栈操作的单位是字,进栈和出栈只对字量 字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存取堆栈中的数据 堆栈段是程序中不可或缺的一个内存区,常用来 临时存放数据 传递参数 保存和恢复寄存器,第3章:3.3.3 标志操作指令,1. 标志位操作指令 CLC ;复位进位标志:CF0 STC ;置位进位标志:CF1 CMC ;求反进位标志:CFCF CLD ;复位方向标志:DF0 STD ;置位方向标志:DF1 CLI ;复位中断标志:IF0 STI ;置位中断标志:IF1 2. 标志寄存器低字节与AH的传送指令 3. 标志寄存器出入堆栈指令,将存储器操作数的有效地址送至指定的16位通用寄存器,第3章:有效地址传送指令LEA(load effective address),LEA r16, mem ;r16mem的有效地址EA,例题2.5 有效地址的获取 mov bx,400h mov si,3ch lea bx,bx+si+0f62h ;BX400H3CH0F62H139EH,第3章:例2.6 地址传送与内容传送,wvar dw 4142h ;假设偏移地址为04H mov ax,wvar ;内容传送:AX4142H lea si,wvar ;地址传送:SI0004H ;等同于 lea si, 0004h mov cx,si ;内容传送:CX4142H mov di,offset wvar ;mov di,0004h ;利用操作符OFFSET获取变量的有效地址 mov dx,di ;内容传送:DX4142H,第3章:调试程序DEBUG,DEBUG是常用的汇编语言级调试工具,为汇编语言程序员提供了分析指令、跟踪程序的有效手段 常用命令: A 汇编 U 反汇编 T 单步执行 G 断点执行 D 数据显示 R 寄存器 启动方法 DOS下执行DEBUG.EXE程序 Windows 9x中进入M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论