微机原理 3-3指令系统Ⅰ数据传送.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:52 大小:1.2MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理 3-3指令系统Ⅰ数据传送.ppt

微机原理3-3指令系统Ⅰ数据传送.ppt

预览

免费试读已结束,剩余 42 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Let`sgo!第3章教学内容§3.1基本概念§3.2寻址方式§3.3指令系统重点:7种操作数寻址方式、各指令格式和应用难点:寻址方式、各指令格式的使用方法第一部分8086/8088指令系统概述B指令系统常用的符号(不区分大小写):ac:指AL(8位)或者AX(16位)reg:R8(AH,AL,BH,BH,BL,CH,CL,DH,DL)R16(AX,BX,CX,DX,SP,BP,SI,DI)SP:堆栈指针IP(PC):指令指针Seg(SegReg):段寄存器(CS,DS,ES,SS)Mem(M):存储器操作数src,dst(dest):源操作数,目的操作数port:I/O端口disp:8/16位偏移量data(Im):立即数(n8位,nn16位,nnnn32位)[]:存储单元的内容():寄存器或者存储单元的内容C:8086/8088指令助记符表(自学)8086/8088指令助记符表(续)第二部分8086/8088指令系统一.数据传送指令功能:负责把数据、地址或立即数传送到寄存器或存储单元。特点:计算机最基本、最重要的一种操作,使用比例最高。分类:(一)通用传送指令:MOV、XCHG、PUSH、POP、XLAT(二)输入输出指令:IN、OUT(三)地址传送指令:LEA、LDS、LES(四)标志传送指令:LAHF、SAHF、PUSHF、POPF注:除SAHF和POPF指令外,其余指令对标志位没有影响。(一)通用传送指令(GeneralPurposeTransfer)8088提供方便灵活的通用的传送操作,适用于大多数操作数。该组指令(除XCHG外)是唯一允许以段寄存器为操作数指令。通用传送指令包括:1、数据传送指令MOV(Movement)2、数据交换指令XCHG(Exchange)3、堆栈操作指令PUSH(Pushwordintostack)POP(Popwordoffstack)4、查表转换指令XLAT(Translate)1、数据传送指令MOV<指令格式>MOVdest,src<功能>将源操作数传送至目的操作数(dest)(src)执行后(src)内容不变,(dest)内容被改写。相当于将(src)复制一次。①立即数传送至CPU内部通用寄存器组和内存单元R→(AX、BX、CX、DX、BP、SP、SI、DI)(Mem)用于给寄存器/存储单元赋初值。Im只能为源数不能直接给段寄存器赋值,需R作为中介。例:MOVCL,04H;立即数8位寄存器MOVAX,03FFH;立即数16位寄存器MOVWORDPTR[SI],057BH;立即数存储器MOVBYTEPTRMEM,5;立即数存储器思考:WORDPTR,BYTEPTR不加行吗?判断正误:MOVAL,1MOV12H,AHMOVAL,0A12HMOVDS,12H②CPU内部寄存器之间的数据的任意传送R8R8R16R16CS和IP只能为源操作数,不能为目标操作数两段寄存器之间不能直接传送,需R做中介例:MOVDL,CH;8位寄存器8位寄存器MOVAX,DX;16位寄存器16位寄存器MOVSI,BP;通用寄存器段寄存器MOVDS,BX;通用寄存器段寄存器MOVAX,CS;段寄存器通用寄存器判断正误:MOVAX,IPMOVCS,AXMOVDS,BLMOVDS,12HMOVIP,BX③CPU内部寄存器与存储器之间数据传送。R8MemR16MemCS和IP不做目标操作数存储单元之间不能直接传送,需中介寄存器例:MOVMEM,AX;累加器存储器,直接寻址MOVMEM,DS;段寄存器存储器,直接寻址MOVDISP[BX],CX;寄存器存储器,变址寻址MOVAX,DISP[SI];存储器累加器,变址寻址MOVDS,MEM;存储器段寄存器,直接寻址MOVCX,DISP[BX][SI];存储器累加器,相对基址加变址判断正误:MOVAX,DA_WORDMOVK_BYTE,AXMOVDS,MEMMOVMEM2,MEM1MOVCS,MEM1MOV指令应用实现将ARE1开始的100个数据传送到ARE2开始的单元。分析题意:①可以用200条MOV指令来完成100个数据传送,指令操作重复,每个数据传送后的地址是变化的。②可以利用循环,但每循环一次要修改地址(源地址和目的地址),必须把地址放在寄存器当中,用寄存器间接寻址来寻找操作数。得到如下程序段*:MOVSI,OFFSETARE1MOVDI,OFFSETARE2