(微机原理与接口技术)chapter04数据传送指令.ppt

(微机原理与接口技术)chapter04数据传送指令.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 习题 说明分配给下列寄存器的默认段寄存器: (a) SP (b) EBX (c) DI (d) EBP (e) SI MOV CS, AX指令会带来什么错误? 设计一个短指令序列,将1000H装入数据段寄存器。 * 8086~80286微处理器中的PUSH和POP指令在堆栈与寄存器或存储单元之间总是传送 ______ 位数字。 设计指令序列,把数据段存储单元NUMB和NUMB+1的内容传送到BX, DX和SI中。 设计指令序列, 将12个字节的数据由SOURCE寻址的存储区域复制到由DEST寻址的存储区域内。 * 写一个短程序,用XLAT指令将BCD码数字0-9转换为ASCII数字30H-39H,ASCII代码存入数据段TABLE 表中。 选择汇编语言伪指令,为LIST1数组保留30个字节存储单元。 设计一个近过程,将AL的内容存入数据段中用DI寄存器寻址的4个连续的单元中。 设计一个远过程,将存储单元CS: DATA1中的字内容复制到AX, BX, CS, DX和SI寄存器。 * PROC和ENDP 指明过程的开始和结束 PROC 伪指令的后面必须跟随NEAR和FAR * 要点 如果使用的Microsoft的MASM 6.X版汇编程序, PROC伪指令可自动保存过程中使用的任何存储器 USES语句指示过程使用的寄存器,使汇编程序在过程开始前就能自动保存它们,而在过程用RET伪指令结束前恢复这些寄存器 * 例 25 * 存储器组织 汇编程序使用两种基本格式开发软件: (1) 一种使用模型 (2) 另一种使用完整的段定义 * 模型 为了标记模型,使用.MODEL语句,后面跟随存储器系统的长度 TINY 模型 要求将全部的软件和数据都安排在64KB存储器段内 SMALL模型 要求只用一个数据段和一个代码段,总计占128KB的存储器(包括堆栈段) 不太常用的模型还有:MEDIUM、COMPACT、LARGE、HUGE和FLAT等 * 例 25 将一个存储器块(LISTA)100个字节的内容复制到存储器块(LISTB) * * 完整段定义 注意,加载程序不能自动初始化DS和ES,必须将程序中的说明的段地址装入这些寄存器 * 例 26 将一个存储器块(LISTA)100个字节的内容复制到存储器块(LISTB) * * 例 27 用完整段定义模型 , USE16 或USE32 伪指令,将一个存储器块(LISTA)100个字节的内容复制到存储器块(LISTB) USE16或USE32伪指令通知汇编程序,令微处理器使用16位或32位指令模型 * * * 例 28 使用 完整段定义 格式,从键盘上读字符并将它显示在屏幕上 DOS功能调用 * * 例 29 使用模型 格式,从键盘上读字符并将它显示在屏幕上 DOS功能调用 * * 实验一: 存储区1中存放着ASCII码表(00H—7FH),要求编写程序, 将存储区1中的内容复制到存储区2。然后,将存储区2中的数 字编码转换为如下编码: 30H—AAH,31H—BBH,32H—CCH 33H—DDH,34H—EEH,35H—FFH,36H—A8H,37H—BFH 38H—C9H, 39H—D1H。 * 小结 数据传送指令在两寄存器之间、寄存器与存储器之间、寄存器与堆栈之间、存储器与堆栈之间、累加器与 I/O端口之间、标志寄存器与堆栈之间传送数据。存储器到存储器的传送只允许用于MOVS 指令。 数据传送指令包括MOV, PUSH, POP, XCHG, XLAT, IN, OUT, LEA, LDS, LES, LSS, LGS, LFS, LAHF, SAHF; 还有BSWAP, MOVSX, MOVZX和CMOV,也包括串操作指令: LODS, STOS, MOVS, INS和OUTS。 * 指令的第一个字节存放操作码。操作码规定微处理器执行的操作。有些指令的操作码前可以有一个或多个超越前缀。 许多指令中的D位用于选择数据流的方向。如果D= 0, 数据从REG字段流向指令的R/M字段。如果D= 1, 则数据从R/M字段流向REG字段。 大多数指令中的W位用于选择数据的长度。如果 W = 0, 数据是字节长度;如果W = 1,数据是字长度。在80386和更高档型号的微处理器中,W= 1,指定字或者双字的寄存器。 * MOD为机器语言指令的R/M字段选择寻址方式。如果MOD= 00, 表示没有位移量。如果MOD= 01,有8位符号扩展的位移量。如果MOD= 10,则有16位的位移量。如果MOD= 11, 则操作数为寄存器而不是存储

文档评论(0)

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

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

1亿VIP精品文档

相关文档