首页 1 数据传送指令

1 数据传送指令

举报
开通vip

1 数据传送指令1 数据传送指令 1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令 本文由276119874贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 第3章 8086指令系统概述 8086指令系统共有 117条基 指令系统共有117 Intel 8086 指令系统共有 117 条基 本指令,可分成6 本指令,可分成6个功能组 ? ? ? ? ? ? 数据传送类...

1 数据传送指令
1 数据传送指令 1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令1 数据传送指令 本文由276119874贡献 ppt 关于艾滋病ppt课件精益管理ppt下载地图下载ppt可编辑假如ppt教学课件下载triz基础知识ppt 文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 第3章 8086指令系统概述 8086指令系统共有 117条基 指令系统共有117 Intel 8086 指令系统共有 117 条基 本指令,可分成6 本指令,可分成6个功能组 ? ? ? ? ? ? 数据传送类指令 算术运算类指令 逻辑运算类指令 串操作类指令 控制传送类指令 处理器控制类指令 第3章 学习指令的注意事项 指令的功能——该指令能够实现何种操作。 该指令能够实现何种操作。 指令的功能 该指令能够实现何种操作 通常指令助记符就是指令功能的英文单词或 其缩写形式 指令支持的寻址方式——该指令中的操作数 该指令中的操作数 指令支持的寻址方式 可以采用何种寻址方式 指令对标志的影响——该指令执行后是否对 该指令执行后是否对 指令对标志的影响 各个标志位有影响, 各个标志位有影响,以及如何影响 其他方面——该指令其他需要特别注意的地 该指令其他需要特别注意的地 其他方面 如指令执行时的约定设置、 方,如指令执行时的约定设置、必须预置的 参数、 参数、隐含使用的寄存器等 教学提示 全面而准确地理解每条指令 的功能和应用, 的功能和应用,是编写汇编 语言程序的关键 第3章 3.4 8086的通用指令 8086的通用指令 3.4.1数据传送指令 数据传送指令 传送指令把数据从一个位置传送到另一个位 置 除标志寄存器传送指令外, 不影响标志位 除标志寄存器传送指令外,均不影响标志位 重点掌握 MOV XCHG XLAT PUSH POP LEA 第3章 通用数据传送指令 提供方便灵活的通用传送操作 有3条指令 条指令 MOV XCHG XLAT XCHG XLAT MOV 第3章 1、传送指令MOV(move) ) MOV 把一个字节或字的操作数从源地址传 送至目的地址 MOV r/mem,im 例题3.1 例题 例题3.2 例题 ;立即数送寄存器或主存 MOV r/mem/seg,r 例题3.3 例题 寄存器送( r/seg,mem MOV;寄存器送(段)寄存器或主存 例题3.4 例题 ;主存送( MOV r/mem,seg主存送(段)寄存器 ;段寄存器送寄存器或主存 MOV 第3章 例3.1:立即数传送 : al,4 al?4 mov al,4 ;al?4,字节传送 cx,0 cx?00 00ffh mov cx,0ffh ; cx?00ffh , 字 传 送 注意立即数是字节量还是字量 si,200 200h si?0200 0200h mov明确指令是字节操作还是字操作 传 si,200h ; si?0200h , 字 送 MOV 第3章 例3.2:寄存器传送 : mov mov mov mov ax,bx ah,al ds,ax [si],al ;ax?bx,字传送 ax?bx, ah?al, ;ah?al,字节传送 ds?ax, ;ds?ax,字传送 [si]?al, ;[si]?al,字节传送 MOV 第3章 例3.3:存储器传送 : mov al,[bx] mov dx,[bp] mov es,[si] ;dx?ss:[bp] dx?ss: es?ds: ;es?ds:[si] 不存在存储器向存储器的传送指令 MOV 第3章 例3.4:段寄存器传送 : mov [si],ds mov ax,es mov ds,ax ;ax?es ;ds?ax?es 对段寄存器的操作有一些限制 第3章 MOV指令传送功能 立即数 存 储 器 通用寄存器 AX BX CX DX BP SP SI DI 段寄存器 CS DS ES SS MOV也并非任意传送 也并非任意传送 第3章 非法传送种种 示例 两个操作数的类型不一致 两个操作数不能都是存储器 段寄存器的操作有一些限制 例如源操作数是字节, 例如源操作数是字节 , 而目的操作 数是字; 数是字;或相反 示例 传送指令很灵活, 传送指令很灵活 , 但主存之间的直 接传送却不允许 示例 段寄存器属专用寄存器, 段寄存器属专用寄存器 , 对他们的 操作能力有限 第3章 两个操作数的类型要一致 绝大多数双操作数指令,除非特别说明, 绝大多数双操作数指令,除非特别说明,目 的操作数与源操作数必须类型一致, 的操作数与源操作数必须类型一致,否则为非 法指令 AL,050 050AH MOV AL,050AH 非法指令:050Ah为字, AL为字节 Ah为字 ;非法指令:050Ah为字,而AL为字节 寄存器有明确的字节或字类型, 寄存器有明确的字节或字类型,有寄存器参 与的指令其操作数类型就是寄存器的类型 对于存储器单元与立即数同时作为操作数的 情况,必须显 式指明; ptr指示字节类型 指示字节类型, 情况,必须显式指明;byte ptr指示字节类型, ptr指示字类型 word ptr指示字类型 第3章 两个操作数不能都是存储器 8086指令系统不允许两个操作数都是 8086 指令系统不允许两个操作数都是 存储单元( 除串操作指令) 存储单元 ( 除串操作指令 ) , 要实现这 种传送, 种传送,可通过寄存器间接实现 mov ax,buffer1 ax,buffer1 ax?buffer1 buffer1内容送ax ax) ;ax?buffer1(将buffer1内容送ax) buffer2 mov buffer2,ax buffer2 ;buffer2?ax 这里buffer buffer1 buffer2 ;这里buffer1和buffer2是两个字变量 ;实际 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示直接寻址方式 第3章 要小心段寄存器的操作 不允许立即数传送给段寄存器 MOV DS,100H 非法指令: ;非法指令:立即数不能传送段寄存器 不允许直接改变CS值 不允许直接改变 值 MOV CS,[SI] ;不允许使用的指令 不允许段寄存器之间的直接数据传送 MOV DS,ES 非法指令: ;非法指令:不允许段寄存器间传送 第3章 注意 ? 通用传送指令可传送8位和16位数据。 通用传送指令可传送8位和16位数据。 16位数据 通用传送指令中总是既含源操作数, ? 通用传送指令中总是既含源操作数 , 又含目 的操作数。 的操作数。 ? 不能在两个内存单元之间直接传送数据 CS和IP寄存器不能作为目的操作数 ? CS和IP寄存器不能作为目的操作数 来间接寻址时, ? 用BX、SI、DI来间接寻址时,默认的段寄存 、 、 来间接寻址时 器为DS,而用BP来间接寻址时 来间接寻址时, 器为 , 而用 来间接寻址时 , 默认的段寄 存器为SS。 存器为 。 执行SS寄存器赋值的传送指令时 寄存器赋值的传送指令时, ? 执行 寄存器赋值的传送指令时 ,系统自动 禁止外部中断。 禁止外部中断。 所有的通用传送指令都不改变标志。 ? 所有的通用传送指令都不改变标志。 第3章 2、交换指令XCHG(exchange) ) XCHG 把两个地方的数据进行互换 XCHG r,r/mem ;reg ? reg/mem 寄存器与寄存器之间对换数据 寄存器与存储器之间对换数据 例题 例题 不能在存储器与存储器之间对换数据 XCHG 第3章 例3.5:寄存器间交换 : ax,1234 1234h mov ax,1234h bx,5678 5678h mov bx,5678h xchg ax,bx xchg ah,al XCHG 第3章 例3.6:寄存器与存储器交换 : ax,[2000 2000h] xchg ax,[2000h] ;字交换 2000h],ax ;等同于 xchg [2000h],ax al,[2000 2000h] xchg al,[2000h] ;字节交换 2000h],al ;等同于 xchg [2000h],al 第3章 3、堆栈操作指令 堆栈是一个“ 堆栈是一个“后进先出 FILO”( 或说“ FILO ( 或说 “ 先进后 FILO”) 的主存区域, 出 FILO ) 的主存区域 , 位于堆栈段中;SS段寄 位于堆栈段中;SS段寄 存器记录其段地址 存器记录其段地址 堆栈只有一个出口, 堆栈只有一个出口,即 当前栈顶; 当前栈顶;用堆栈指针 寄存器SP指定 寄存器SP指定 SP 栈顶是地址较小的一端 低端) (低端),栈底不变 第3章 堆栈和队列 堆栈:按照后进先 出 (LIFO) 的 原 则 组 织 的存储器空间( 的存储器空间(栈) 队列:按照先进先 出 (FIFO) 的 原 则 组 织 的存储器空间 LIFO FIFO 第3章 堆栈的操作 堆栈只有两种基本操作: 堆栈只有两种基本操作 : 进栈和 出栈,对应两条指令PUSH和POP 出栈,对应两条指令 和 PUSH ;进栈指令先使 堆栈指针SP SP减 堆栈指针SP减2, 然后把一个字操 作数存入堆栈顶 部 POP ;出栈指令把栈顶 的一个字传送至指 定的目的操作数, 定的目的操作数, 然后堆栈指针SP SP加 然后堆栈指针SP加2 第3章 第3章 进栈指令PUSH PUSH PUSH r16/m16/seg SP?SP, ;SP?SP,2 ;SS:[SP]?r16/m16/seg push ax push [2000h] 2000h] 第3章 出栈指令POP POP POP r16/m16/seg ;r16/m16/seg?SS:[SP] SP?SP, ;SP?SP,2 pop DX pop [2000h] 2000h] 第3章 堆栈的特点 堆栈操作的单位是字, 堆栈操作的单位是字,进栈和出栈只对字量 字量数据从栈顶压入和弹出时, 字量数据从栈顶压入和弹出时 , 都是低地址 字节送低字节, 字节送低字节,高地址字节送高字节 堆栈操作遵循先进后出原则, 堆栈操作遵循先进后出原则 , 但可用存储器 寻址方式随机存取堆栈中的数据 堆栈常用来 临时存放数据 传递参数 保存和恢复寄存器 例题3.7 例题 第3章 例3.7:现场保护恢复 : push ax push bx push ds „„ pop ds pop bx pop ax ;进入子程序后 ;返回主程序前 第3章 堆栈操作的注意事项 堆栈操作总是按字进行的。 ? 堆栈操作总是按字进行的。 推入指令,SP减 数据在栈顶。 ? 推入指令,SP减2,数据在栈顶。弹出指令 正好相反。 正好相反。 允许PUSH CS,但不允许POP CS。 ? 允许PUSH CS,但不允许POP CS。 堆栈的后进先出。 ? 堆栈的后进先出。 第3章 4、 输入输出指令 8086通过输入输出指令与外设进行数 通过输入输出指令与外设进行数 据交换; 呈现给程序员的外设是端口 据交换 ; 呈现给程序员的外设是 端口 (Port)即I/O地址 ) 地址 8086用于寻址外设端口的地址线为 用于寻址外设端口的地址线为16 用于寻址外设端口的地址线为 端口最多为2 条 , 端口最多为 16 , 65536( 64K) ( ) 端口号为0000H,FFFFH 个,端口号为 , 每个端口用于传送一个字节的外设数 据 第3章 输入输出寻址方式 8086的 端口有 的 端口有64K个 , 无需分段 , 个 无需分段, 设计有两种寻址方式 直接寻址: 只用于寻址00H, FFH前 直接寻址 : 只用于寻址 , 前 256个端口,操作数 表示端口号 个端口, 个端口 操作数i8表示端口号 间接寻址: 可用于寻址全部64K个端 间接寻址 : 可用于寻址全部 个端 口,DX寄存器的值就是端口号 寄存器的值就是端口号 对大于FFH的端口只能采用间接寻 的端口只能采用间接寻 对大于 址方式 第3章 输入指令IN IN 将外设数据传送给CPU内的 内的AL/AX 将外设数据传送给 内的 演示 IN AL,i8 字节输入:AL?I/O端口 i8直接寻址 端口( 直接寻址) ;字节输入:AL?I/O端口(i8直接寻址) IN AL,DX 字节输入:AL?I/O端口 DX间接寻址 端口( 间接寻址) ;字节输入:AL?I/O端口(DX间接寻址) IN AX,i8 字输入:AX?I/O端口 i8直接寻址 端口( 直接寻址) ;字输入:AX?I/O端口(i8直接寻址) IN AX,DX 字输入:AX?I/O端口 DX间接寻址 端口( 间接寻址) ;字输入:AX?I/O端口(DX间接寻址) 例题3.8 例题 IN 第3章 例3.8:输入字量 : ;直接寻址,字节量输入 直接寻址, al,21 21h in al,21h mov ah,al 两段功能相同 al,20 20h in al,20h 字量数据传送实 直接寻址, ;直接寻址,字量输入 际上实现了连续的 ax,20 20h in ax,20h 两个端口地址的字 间接寻址, ;间接寻址,字量输入 节量传送 dx,20 20h mov dx,20h in ax,dx 第3章 输出指令OUT OUT 内的AL/AX数据传送给外设 将CPU内的 内的 数据传送给外设 演示 OUT i8,AL 字节输出:I/O端口 AL(i8直接寻址 端口? 直接寻址) ;字节输出:I/O端口?AL(i8直接寻址) OUT DX,AL 字节输出:I/O端口 AL(DX间接寻址 端口? 间接寻址) ;字节输出:I/O端口?AL(DX间接寻址) OUT i8,AX 字输出:I/O端口 AX(i8直接寻址 端口? 直接寻址) ;字输出:I/O端口?AX(i8直接寻址) OUT DX,AX 字输出:I/O端口 AX(DX间接寻址 端口? 间接寻址) ;字输出:I/O端口?AX(DX间接寻址) 例题3.9 例题 OUT 第3章 例3.9:输出字节量 : ;间接寻址,字节量输出 间接寻址, dx,3 mov dx,3fch al,80 80h mov al,80h out dx,al 第3章 2 5、扩展指令 不影响标志位 AL的符号扩展至 的符号扩展至AH CBW ;AL的符号扩展至AH ;如AL的最高有效位是0,则AH,00 AL的最高有效位是0 的最高有效位是 AH, AL的最高有效位为 的最高有效位为1 AH,FFH。AL不变 ;AL的最高有效位为1,则AH,FFH。AL不变 AX的符号扩展至 的符号扩展至DX CWD ;AX的符号扩展至DX ;如AX的最高有效位是0,则DX,00 AX的最高有效位是0 的最高有效位是 DX, AX的最高有效位为 的最高有效位为1 DX,FFFFH。AX不变 ;AX的最高有效位为1,则DX,FFFFH。AX不变 例题3.10 例题 什么是符号扩展 什么是符号扩展 符号扩展指令常用于获得倍长的数据 例题3.11 例题 第3章 符号扩展的概念 符号扩展是指用一个操作数的符号位 即最高位) 形成另一个操作数, ( 即最高位 ) 形成另一个操作数 , 后 一个操作数的各位是全0(正数) 一个操作数的各位是全 (正数)或全 1(负数)。符号扩展不改变数据大小 (负数) 对于数据64H( 表示数据 ( 表示数据100) , 其最高 对于数据 ) 位都是0, 位D7为0,符号扩展后高 位都是 ,成为 ,符号扩展后高8位都是 0064H(仍表示数据 (仍表示数据100) ) 对于数据ff00H( 表示有符号数 , 256) , 对于数据 ( 表示有符号数, ) 其最高位D 其最高位 15 为 1, 符号扩展后高 位都 , 符号扩展后高16位都 是 1, 成为 , 成为ffffff00H( 仍表示有符号数 , ( 仍表示有符号数, 256) ) 第3章 例3.10:符号扩展 : al,80 80h mov al,80h cbw al,255 add al,255 cbw ;al=80h al=80h 80 ax=ff80 80h ;ax=ff80h al=7 ;al=7fh ax=007 007fh ;ax=007fh 第3章 例3.11:AX?BX : ? cwd idiv bx ;DX.AX?AX DX. AX?DX.AX? ;AX?DX.AX?BX 利用符号扩展指令得到除法指令所 需要的倍长于除数的被除数 对无符号数除法应该采用直接使高8 对无符号数除法应该采用直接使高 位或高16位清 的方法, 位清0的方法 位或高 位清 的方法 , 获得倍长的 被除数 第3章 第3章 第3章 IN AL,21H 第3章 OUT 43H,AL
本文档为【1 数据传送指令】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_014457
暂无简介~
格式:doc
大小:29KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-17
浏览量:23