指令系统(数据传送指令)_第1页
指令系统(数据传送指令)_第2页
指令系统(数据传送指令)_第3页
指令系统(数据传送指令)_第4页
指令系统(数据传送指令)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、12 为便于理解指令的形式和功能, 对指令中操作数符号的约定如下: 大小写字母无区别oprd: 泛指各类操作数;oprd1, oprd2: 多操作数指令中, oprd1为目标操作数,oprd2为源操作数;dest, src: 目的操作数, 源操作数reg: 8位或16位的通用寄存器;sreg: 段寄存器;acc: 累加器al或ax3 reg8: 8位通用寄存器;reg16: 16位通用寄存器;mem: 8位或16位存储器;mem8: 8位存储器;mem16: 16位存储器;disp: 8位或16位存储器地址偏移量;imm或data: 8位或16位立即数;imm8: 8位立即数;imm16: 1

2、6位立即数;port :I/O端口地址,port端口号0255 ;( ):寄存器内容; :存储单元的内容或偏移地址。4567寄存器与存储器之间的传送 例:若有例:若有DS=6000H,SS=8000H,AX=1234H,BX=1200H,DI=0383H,BP=13A3H;MOV BX,AX ;将将AX的内容送内存单元。其中:的内容送内存单元。其中: 61200H=34H,61201H=12HMOV CL,BPDI;将堆栈段中偏移地址将堆栈段中偏移地址BP+DI 的内容送的内容送CL。CL=81726HMOV AX,6000H;将将DS的的6000H的的6001H两个两个 单元的内容送单元的内

3、容送AX891011l应用举例:将1000H开始的100个存储单元 全部填充为ASCII码2AH(*)。程序段如下: MOV DI,1000H MOV CX,64H MOV AL,2AHAGAIN:MOV DI,AL INC DI DEC CX JNZ AGAIN HLT12上程序段存放在代码段代码段中,設(CS)=109EH,则各条指令存放地址如下: CS : IP CS : IP 指令指令109E : 0100 MOV DI,1000H109E : 0103 MOV CX,64H109E : 0106 MOV AL,2AH109E : 0108 MOV DI,AL109E : 010A I

4、NC DI109E : 010B DEC CX109E : 010C JNZ 0108109E : 010E HLT109E : 011013 写入2AH(*)后,数据段中相应存储单元的内容改变如下:DS:1000DS:1000 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1010DS:1010 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1020DS:1020 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1030DS:1030

5、 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1040DS:1040 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1050DS:1050 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ADS:1060DS:1060 2A 2A 2A 2A14什么是堆栈? 按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位以字为单位进行压入弹出操作。为什么要设置堆栈?为什么要按 “后进先出”方式工作?参见下图15主程序IP继续执行主程序执行子程序

6、转子程序压栈弹出返回主程序主程序IPIP(下)继续执行主程序转子程序1返回主程序IP执行子程序 2转子程序2返回子程序1IP(下)执行子程序1继续执行子程序1(a)(b)子程序调用示意图(a) 主程序调子程序; (b) 子程序嵌套示意图压栈弹出IP(下)16SPSS堆栈段堆栈段进栈方向退栈方向栈底栈底栈顶栈顶1718设(AX)=1020H,执行示意图如图低地址存储区(SS段)执行前(AX)=1020(SP)存储区(SS段)进栈方向执行后2010(AL)(AH)PUSH AX指令执行示意图指令执行示意图(SP)-2(SP)高地址低地址高地址(SP)- -1192021POP BX 的执行示意图如

7、下图所示低地址存储区(SS段)出栈方向执行前2010POP BX指令执行示意图指令执行示意图(SP)存储区(SS段)执行后(BX)=1020(SP)(SP)+1(SP)+2BX2010高地址低地址高地址22232425303132.394142.4546.42000H+042000H+0BH0129ABEF十六进制数十六进制数ASCIIASCII码表码表存储器指令性要求将表的首地址送寄存器BX,要查找的元素序号送AL,执行XLAT指令后,表中指定序号的元素被存入AL。26则可用如下几条指令实现则可用如下几条指令实现:注意:注意:转换表长度最大为转换表长度最大为256256个表项个表项( (字节

8、字节) )。272829303132下面两条指令等效: LEA BX,BUFFER MOV BX, OFFSET BUFFER其中OFFSET BUFFER表示存储器单元BUFFER的偏移地址。二者都可用于取存储器单元的偏移地址,但LEA指令可以取动态的地址,OFFSET只能取静态的地址。LEA是真正的汇编指令,它对应于一个机器码,而OFFSET只是一个给汇编程序的关键字,它要求汇编程序在汇编时算出相应的地址偏移,也就是说它对应的操作数必须是一个汇编程序知道的变量或者标量!而LEA却可以算出任何形式的地址偏移! 334.标志传送指令共有四条:(1)(1)读标志指令读标志指令LAHF LAHF把标志寄存器低8位中的5个标志位传送到AH中的指定位,如下图所示:1D3D5D7D6D4D2D0DOF DF IF TF SF ZFAFPFCFAHLAHF指令的功能FLAG34(

温馨提示

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

评论

0/150

提交评论