微机原理课件 第4章8086指令系统.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:89 大小:1.4MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理课件 第4章8086指令系统.ppt

微机原理课件第4章8086指令系统.ppt

预览

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

16 金币

下载此文档

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

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

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

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

第四章8086指令系统4-18086汇编语言及寻址方式二、寻址方式(寻找操作数的方式)2、寄存器寻址——操作数在指定的寄存器中操作数存放在CPU的内部寄存器reg中:8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器seg:CS、DS、SS、ES程序设计时,8086采用逻辑地址表示主存地址段地址在默认的或用段超越前缀指定的段寄存器中指令中只需给出操作数的偏移地址(有效地址EA)(1)直接寻址——有效地址EA(操作数的偏移地址)由指令直接给出(2)寄存器间接寻址——EA只能在BX、BP、SI、DI中(3)寄存器相对寻址(4)基址变址寻址(5)相对基址变址寻址4、固定寻址(隐含寻址)指令中已经默认对微处理器中的某寄存器进行操作,不用在指令中指明使用的寄存器。5、I/O端口操作数的寻址方式寻址方式小结(1)正确书写各种寻址方式的汇编格式(2)清楚各种寻址方式所指定的操作数或操作数地址在何处?(指令中/寄存器中/存储器单元中)(3)各种存储器寻址方式是如何形成操作数的物理地址的?(段寄存器/基址、变址寄存器/偏移量的组合关系)(4)各种寻址方式限定使用的寄存器8086微处理器指令系统中有133条指令,根据指令的操作性质可分为六大类。4-2数据传送类一、通用数据传送指令1、传送指令:MOVDST,SRC;DSTSRC例:将AX、BX、CX、DX寄存器清零。(1)MOVAX,0000HMOVBX,0MOVCX,0MOVDX,0(2)MOVAX,0000HMOVBX,AXMOVCX,BXMOVDX,AX如:MOV[BX+SI],255;非法指令,修正:movbyteptr[bx+si],255;byteptr说明是字节操作movwordptr[bx+si],255;wordptr说明是字操作例:将50H、51H分别存入存储器21000H、21006H单元。(1)MOVAX,2000HMOVDS,AXMOVSI,1000HMOVBYTEPTR[SI],50HMOVBYTEPTR[SI+6],51H或(2)MOVAX,2000HMOVDS,AXMOVBL,50HMOVBH,51HMOV[1000H],BLMOV[1006H],BH例:交换BUF1和BUF2两单元的内容。MOVSI,OFFSETBUF1MOVDI,OFFSETBUF2MOVAL,[SI]MOVAH,[DI]MOV[SI],AHMOV[DI],AL注意:非法指令的主要现象两个操作数的类型不一致无法确定是字节量还是字量操作两个操作数都是存储器段寄存器的操作有一些限制堆栈是一个“先进后出”的主存区域,位于堆栈段中;SS段寄存器记录其段地址堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器SP指定堆栈只有两种基本操作:进栈和出栈,对应两条指令PUSH和POPPOPDST;DST←SS:[SP]SP←SP+2出栈指令把栈顶的一个字传送至指定的目的操作数,然后堆栈指针SP加2注意:*不能用立即寻址方式PUSH1234H*DST不能是CSPOPCS例:假设AX=2107H,执行PUSHAX堆栈操作的单位是字,进栈和出栈只对字量字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存取堆栈中的数据堆栈段是程序中不可或缺的一个内存区,常用来临时存放数据传递参数保存和恢复寄存器例:PUSHDSSUBAX,AXPUSHAX…………RET例:PUSHAX;保护现场PUSHBX…;其间用到AX和BX寄存器…POPBX;恢复现场POPAXRET3、交换指令:XCHGOPR1,OPR2;OPR1OPR2寄存器与寄存器之间对换数据寄存器与存储器之间对换数据不能在存储器与存储器之间对换数据注意:*不影响标志位*不允许使用段寄存器例:XCHGBX,[BP+SI];BX[PA]XCHGAL,BH;ALBH4、换码指令XLAT二、地址传送指令例:三、标志寄存器传送指令4-3数据运算类一、加法指令加法指令:ADDDST,SRC;DSTSRC+DST带进位加法指令:ADCDST,SRC;DSTSRC+DST+CF加1指令:INCOPR;OPROPR+1例:将22000H和23000H开始的4个字节相加,和送存24000H开始的单元。(高位对应高地址,低位对应低地址)例:双精度数的加法DX=0002HAX=0F365