微原第3章3.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.4 数据传送类指令 例3.1 设(SP)=00A0H,执行下列指令 PUSH AX PUSH VAR1 后,(SP)= 。 解:每向堆栈压入一个字,SP的内容减2,因此指令执行后(SP)= 009CH 。 应该注意:在程序设计时,PUSH、POP必须配对使用,尤其是在分支中应该确保PUSH与POP成对出现,以保证堆栈操作的正常次序,这也是子程序能够正常返回的前提条件。 3.4 数据传送类指令 3.4 数据传送类指令 作业: 3 4(1)(2)(3) 6 8 设在数据段(DS段)有下面的变量定义: DATA1 DW 1234H , 5678H DATA2 DB 20H , 30H , 40H DATA3 DW 10 DUP(?) 则传送指令可以有: MOV SI , OFFSET DATA2 ;(SI) OFFSET DATA2 ∴指令执行后,(SI)=0004H 3.4 数据传送类指令 对于双操作数指令,两个操作数的类型必须匹配: 两者都指定了类型,则必须一致,否则指令出错(类型不一致); 两者之一指定了类型,一般指令无错; 两者都无类型,则指令出错(类型不定)。 3.4 数据传送类指令 对于操作数的类型,还应该注意: 立即数是无类型的; 不含变量名的直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、基址变址且相对寻址的操作数也是无类型的; 利用PTR操作符可指定或暂时改变存储单元的类型。 3.4 数据传送类指令 应该搞清楚什么样的操作数为立即数。 从形式上看,立即数有: 由常数等组成的表达式 所有由属性操作符得到的标号或变量的属性。 3.4 数据传送类指令 例如,下面指令书写是错误的。 (DATA1为字变量) MOV 10H,AL ㄨ DST不能为立即数寻址 MOV AL,CX ㄨ 类型不一致 MOV [BX][SI],78H ㄨ 类型不明确 3.4 数据传送类指令 MOV DATA1,AH ㄨ 类型不一致 MOV [DI]+02H,DATA1 ㄨ 两单元之间不 能直接传送数据 MOV CS,AX ㄨ CS不能做DST MOV DS,0100H ㄨ 当DS作DST时,SRC 不能为立即数 3.4 数据传送类指令 2.取有效地址指令(LEA) Load Effective Address 格式:LEA REG , MEM 功能:指令的功能是将源操作数MEM (存储单元)的有效地址(偏移地址) 传送到寄存器REG。 这是一条特殊指令,它传送的不 是操作数本身,而是操作数的有 效地址。 注:DST REG为通用REG,一般用BX、BP、SI、DI。 3.4 数据传送类指令 例如: LEA DI, VAR1 ;(DI) ←VAR1的偏移地址 等效于: MOV DI , OFFSET VAR1 LEA BX,VAR1+15 ;(BX) ←VAR1的偏移地址+15 等效于: MOV BX , OFFSET VAR1+15 3.4 数据传送类指令 3.取地址指针指令(LDS,LES) Load Data/Extra Segment Register 格式: LDS REG16,MEM ;(DS)←(MEM+2), (REG16)←(MEM) LES REG16,MEM ;(ES)←(MEM+2), (REG16)←(MEM) 3.4 数据传送类指令 功能: 取地址指针指令LDS 可以将双字变量MEM内容中的高16位送入DS,低16位送入指定的REG16中; 而取地址指针指令LES 可以将双字变量MEM内容中的高16位送入ES,低16位送入指定的REG16中。 3.4 数据传送类指令 例如定义变量: TABLE DB 10H, 20H,…… POINT1 DD POINT2 DD TABLE 则可以有指令 LDS DI,POINT1 ;(DS) ← 0200H,(DI)← 1000H LES SI,POINT2 ; (ES)← TABLE的段地址, ; (SI)← TABLE的偏移地址 3.

文档评论(0)

peain + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档