第3章 8086的指令系统1.pptx
文本预览下载声明
第3章 8086的指令系统;操作码;何谓汇编语言指令?;3-2 8086的寻址方式; 操作数就在CPU的内部寄存器中,寄存器名由指令指出。
例: DEC BL ;将BL的内容减1
MOV DX,AX ;将AX中的值送入DX中;又例:MOV ES:[1234H] ,BL
则是将BL中的内容送至ES段的偏址为1234H的单元中。;关于段寄存器使用的一些基本约定; 操作数在存储器中,而操作数有效地址由BX、BP、SI和DI中的一个指出,若未用前缀指明,默认关系为:
对BX、SI、DI默认在DS段中;对BP默认在SS段中。
例:MOV AX,[DI]
设(DS)=3000H,(DI)=2000H
该指令将32000H和32001H两存储单元中的内容送AX。;例:MOV AX,[36H+BX]; [36H+BX]=36H[BX]
若(DS)=5000H,(BX)=3000H。; ;相对的基址加变址寻址;寻址方式结束:
串寻址不作要求,
I/O端口寻址,在今后讲解I/O指令时介绍。;3-3 8086的指令集;3-3-1 数据传送指令;MOV DST,SRC; DST←SRC
传送的是B/W取决于指令中涉及的寄存器是8位/16位。
具体来说可实现:;对MOV指令小结:可执行:寄←→寄 ;但CS,IP不能作目的寄存器寄←→存 ;不能:存←存寄,存←→段寄 ;不能:段寄←段寄寄←立即数 ;不能:段寄←立即数 存←立即数;举例:将1000H开始的100个存储单元送上ASCII码2AH(*)。
程序段如下:
MOV DI,1000H
MOV CX,64H
MOV AL,2AH
AGAIN: MOV [DI],AL
INC DI
DEC CX
JNZ AGAIN
INT 20H ;若(CX)=0,返回DOS ; 堆栈规定设在SS段内,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。 ;② 出栈指令 POP DST
例:POP BX ;将栈顶内容弹至BX
执行操作:(BL)←(SP), (SP) ←(SP)+1;
(BH)←(SP), (SP)←(SP)+1;格式:XCHG REG,MEM/REG
执行操作: REG??MEM/REG
要求:不允许使用段寄存器。;二、累加器专用传送( I/O传送指令);例:OUT 68H,AX ;(68+1H,68H)←(AX)
OUT DX,AL ;((DX))←(AL);共有三条(LEA、LDS、LES),只介绍LEA指令。
格式:LEA REG,MEM
将指定存储器的16位偏址送指定寄存器。
指令要求源操作数必须是一个内存操作数,目的操作数必须是一个16位的通用寄存器。;数据传送指令结束。
说明:数据传送指令中的下列指令不作要求。
XLAT
LDS
LES
LAHF
SAHF
PUSHF
POPF
第三章作业:1、2、5、6 ;3-3-2 算术运算指令;不带进位的加法指令ADD
格式有:ADD AL,data
ADD AX,data
ADD mem/reg,data
ADD mem/reg1,mem/reg2; ADC指令在形式上和功能上都有与ADD类似,只是在相加时要把进位标志的现行值CF加到和中。
例: ADC AL,68H
ADC AX,CX
ADC BX,[DI];BUFFER1;格式: INC reg/mem
例: INC AL
INC BYTE PTR[BX+4];BX+4所指存储单元中字节加1
本指令除CF外对其余标志均有影响。;二、减法指令;减1
显示全部