机电-第3章8086指令系统..ppt

第三章 8086指令系统 ;;特点;指令格式;第二节 8086的寻址方式;操作数是指令的操作对象。8086/8088指令系统中的操作数存在形式有4种: 立即数操作数:出现在指令代码内部的常数。 寄存器操作数:指令中给出寄存器的符号,操作数在寄存器中。 存储器操作数:指令中给出存储器的地址形式,操作数在存储器中。 I/O操作数:指令中要操作的数来自或送到I/O端口。;8086的操作数寻址方式;2、立即数寻址(Immediate Addressing) 这种寻址方式不需要根据地址寻找操作数,其执行速度快,但由于操作数是指令的一部分,不能修改,因此立即寻址方式只适用于提供常数,设定初始值。 使用立即寻址的指令主要用来给寄存器赋初值 MOV AL,5;指令执行后AL=05H,8位数据05H存入AL寄存器 MOV AX,3064H;指令执行后AX=3064H,16位数据3064H存入AX寄存器;…;3、寄存器(直接)寻址(Register Addressing) 操???数包含在CPU内的某个寄存器中,指令中直接给出该寄存器名。 操作数对应的寄存器: 16位:AX、BX、CX、DX、SI、DI、SP和BP;8位:AL、BL、CL、DL、AH、BH、CH、DH。;;;8086/8088中默认段寄存器 允许超越的段寄存器如下表示:;;【例】 MOV AX,[22A0H] 执行过程如图所示。;注意:; 5.寄存器间接寻址;【例】 MOV AX,[SI] 执行过程如图所示。;5.寄存器间接寻址;【例】 MOV AX,[BP] 执行过程如图所示。;6、寄存器相对寻址 间址寄存器仍可为BX、BP、SI和DI。与寄存器间接寻址类似。 例:设(SS)=3000H,(BP)=8000H MOV AX,0100H [BP]则src的PA=(SS)×16 +(BP)+D=(3000H)×16+8000H+0100H=38100H;7、基址变址寻址 src的EA由指令中指定的一个基址寄存器(BX或BP)的内容和一个变址寄存器(SI或DI)内容之和组成,即 根据基址寄存器是BX还是BP,确定操作数是在数据段(DS)还是在堆栈段(SS)。;如: MOV AX,[BX] [DI]或写成MOV AX,[BX+DI] 设(DS)=2000H,(BX)=0256H,(DI)=6694H,则PA=(DS)×16+(BX)+(DI)=268EAH 指令执行后,将把268EAH和268EBH两单元的内容送到AX中,即(AH)=3BH,(AL)=20H 由于基址寄存器和变址寄存器的内容都是可以修改,因此,在处理二维数组和表格时用这种寻址方式较为方便。;【例】 MOV AX,[BX+SI+250H] 执行过程如图所示。;第三节 8086/8088指令系统;1.通用数据传送指令;MOV的6种具体格式;④段寄存器和存储单元之间的传送 MOV DS,[3000H] ;将3000H和3001H两字节单元的内容送到DS MOV [BX+SI],CS ;CS的内容送到BX+SI和BX+SI+1所指的两个字节存储单元 ⑤立即数送到通用寄存器 MOV AX,2F5AH ;立即数2F5AH送到AX ⑥立即数送到存储单元 MOV WORD PRT[DX],0800H ;立即数0800H送到DX所指的字节存储单元;MOV指令注意事项:;;2) 堆栈操作指令PUSH,POP;在调用子程序或进行中断处理时,需要保存返回地址以及数据(此过程称为保护现场);子程序返回或中断处理完毕返回时,必须恢复中断前的现场并回到原来主程序,这些功能要通过堆栈来实现。保护现场由入栈指令PUSH,恢复现场由出栈指令POP完成。 1)PUSH 格式:PUSH src 功能:将src压入堆栈,src可为16位的通用寄存器、段寄存器或存储单元。;例: PUSH AX PUSH DS 指令执行过程: (SP)←(SP)-2 为什么“-”且“2”? ((SP))=src的低8位 ((SP)+1)=src的高8位 例: (AX)=2207H PUSH AX 如右图示。;;使用堆栈指令时注意:;;;XLAT举例;2.输入输出指令;3. 地址传送指令;;;;;4. 状态标志位传送指令;;二、算术运算指令;1.加法运算指令 1)不带进位的加法指令ADD 格式:ADD dst,src 功能: (dst)←(dst)+(src) 操作数可以是字或字节 例: ADD AX,3A5FH ADD AX,[BX+1000H] ADD [BX+DI],AX;;例:目的操作数存放在DX和AX寄存器中,其中DX存放高位字。源操作数存放在BX、CX中,BX存放高位字。 执行指令前: (DX)=00

文档评论(0)

1亿VIP精品文档

相关文档