指令系统-传送类指令.ppt

上传人:小飞机 文档编号:6575155 上传时间:2023-11-14 格式:PPT 页数:19 大小:202.50KB
返回 下载 相关 举报
指令系统-传送类指令.ppt_第1页
第1页 / 共19页
指令系统-传送类指令.ppt_第2页
第2页 / 共19页
指令系统-传送类指令.ppt_第3页
第3页 / 共19页
指令系统-传送类指令.ppt_第4页
第4页 / 共19页
指令系统-传送类指令.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《指令系统-传送类指令.ppt》由会员分享,可在线阅读,更多相关《指令系统-传送类指令.ppt(19页珍藏版)》请在三一办公上搜索。

1、1,80 x86的指令系统,传送类指令,读书之法,在循序而渐进,熟读而精思。(朱熹),2,传送类指令-传送指令MOV-教材第47页,格式MOV 目的,源功能:将一个操作数在存储器和寄存器之间传送,或者寄存器和寄存器之间传送,或者将立即数传送到寄存器或存储器不能用于存储器与存储器之间传送不能用于段寄存器和段寄存器之间传送不能将立即数传送到段寄存器,读书之法,在循序而渐进,熟读而精思。(朱熹),3,除IP,MOV 目的,源,段寄存器DSESSS,通用寄存器AXSPBXBPCXSIDXDI,存储器单元,立即数,除CS,除PSW,类型要明确,标志位不影响,读书之法,在循序而渐进,熟读而精思。(朱熹),

2、4,交换指令XCHG-教材第47页,格式XCHG 操作数1,操作数2功能交换2个操作数可以是寄存器和寄存器之间交换可以是寄存器和存储器之间交换,读书之法,在循序而渐进,熟读而精思。(朱熹),5,XCHG 数1,数2,通用寄存器AXSPBXBPCXSIDXDI,存储器单元,通用寄存器AXSPBXBPCXSIDXDI,段寄存器DSESSSCS,立即数,标志位不影响,读书之法,在循序而渐进,熟读而精思。(朱熹),6,例1-39(视频演示)-教材第47页,指令xchg ax,bx 实现将AX中的数据和用BX间接寻址所表示的存储单元中的数据进行互换。在DEBUG中跟踪操作,指令执行前,AX=0000,把

3、BX中的0000作为偏移地址,ds:0000单元中执行指令前为20cdh。用T命令执行指令,可以看到,AX=20cdh,而数据段ds:0000单元中为0000h,实现了寄存器和存储单元的数据互换。,读书之法,在循序而渐进,熟读而精思。(朱熹),7,(3)换码指令XLAT-教材第48页,格式XLAT功能将DS:BX指向转换表的首地址,以AL中的内容为序号,以转换表中的字节内容存入到AL中,读书之法,在循序而渐进,熟读而精思。(朱熹),8,XLAT,存储器单元,BX,AL,+,先定位BX再置AL数不涉及其余寻址方式,标志位不影响,教材第48页,读书之法,在循序而渐进,熟读而精思。(朱熹),9,(3

4、)换码指令XLAT-教材第48页,换码指令XLAT用于将缓冲区中的一个数据取出并传送给AL寄存器。BX指定这个缓冲区在主存中的开始位置,AL指定数据距离开始位置的位移量。XLAT指令的应用场合比较独特,主要用于将一种代码转换为另一种代码。,读书之法,在循序而渐进,熟读而精思。(朱熹),10,例1-40(视频演示)-教材第48页,在DEBUG中输入xlat语句,执行前查看BX、AL、以及(BX+AL)单元中的数据,执行后,查看AL 中的数据。在下图中可见,用R命令查看到执行指令前,AL=00h,BX=0000h,源操作数在数据段的0000+00=0000单元中,用D命令查看到ds:0000单元中

5、为0cdh,所以,用T命令执行xlat时,将0cdh传送到隐含的目的操作数AL中,AL=0cdh。,读书之法,在循序而渐进,熟读而精思。(朱熹),11,(4)堆栈指令PUSH/POP-教材第48页,堆栈是主存中一个特殊的区域,它采用“先进后出”的存取原则。8086/8088中堆栈区域被称为堆栈段,首地址由SS指定,栈顶位置由SP指定。堆栈的基本操作是进栈PUSH和出栈POP指令。堆栈指令主要用于临时保存数据、寄存器的保护和恢复以及参数传递。,读书之法,在循序而渐进,熟读而精思。(朱熹),12,堆栈操作指令-教材第48页,格式PUSH 源 POP 目的功能PUSH指令将存储器、寄存器中数据压入堆

6、栈POP指令将堆栈顶的数据弹出到存储器或寄存器中,读书之法,在循序而渐进,熟读而精思。(朱熹),13,PUSH 源 PUSHF,段寄存器DSESSS,通用寄存器AXSPBXBPCXSIDXDIPSWIP,存储器单元,堆栈区,除CS,立即数,必须是字类型,标志位不影响,读书之法,在循序而渐进,熟读而精思。(朱熹),14,POP 目的POPF,段寄存器DSESSS,通用寄存器AXSPBXBPCXSIDXDI/PSW,存储器单元,堆栈区,除CS,除IP,必须是字类型,标志位不影响,读书之法,在循序而渐进,熟读而精思。(朱熹),15,例1-41(视频演示)-教材第49页,在DEBUG中调试下面指令,执

7、行前请先查看一下相关寄存器和堆栈单元的值,执行后再查看有否发生变化,发生了什么变化。push axpop cx,读书之法,在循序而渐进,熟读而精思。(朱熹),16,(5)有效地址传送指令LEA-教材第49页,有效地址传送指令LEA获取存储器操作数的有效地址EA(偏移地址),常用于将变量所在的初始地址赋给寄存器。由于要在指令中指明变量符号,而DEBUG中的指令不允许输入符号,要用单元的偏移地址来表示。,读书之法,在循序而渐进,熟读而精思。(朱熹),17,取有效地址指令LEA-教材第49页,格式LEA 目的,源单元功能将单元偏移地址(有效地址)传送给通用寄存器,读书之法,在循序而渐进,熟读而精思。(朱熹),18,LEA 目的,源单元,存储器单元,通用寄存器AXSPBXBPCXSIDXDI,地址,段寄存器DSESSSCS,立即数,标志位不影响,除PSWIP,读书之法,在循序而渐进,熟读而精思。(朱熹),19,例1-42(视频演示)-教材第50页,mov ax,1234lea ax,1234在DEBUG中跟踪比较这两条指令的功能差异。从下图中可以看到,两条指令都是对数据段的1234h单元操作,但是MOV指令取的是单元中的值,而LEA指令取的是该单元的地址。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号