微机原理重要知识点 联系客服

发布时间 : 星期五 文章微机原理重要知识点更新完毕开始阅读4111919aa76e58fafbb00368

寄存器约定由基址寄存器决定,若为BX,段寄存器约定为DS;若为BP,段寄存器约定为SS,允许段超越。

例:MOV BX,[DI+BP+45H] ;BX←SS:[DI+BP+45H]

MOV AX,ES:[SI+BX+76H];AX←ES:[SI+BX+76H] 注意:基址寄存器BX和BP不能同时出现在一个方括号内,变址寄存器DI和SI亦如此。

(6)串寻址:用于数据串操作指令,它隐含地运用:SI指出源串偏移地

址,DI指出目的串偏移地址,指令执行后,SI和DI的内容自动加1或减1(操作数为字节类型时)、加2或减2(操作数为字类型时);约定源串段地址在DS中,目的串段地址在ES中。不允许段超越。 例:MOVSB ;ES:[DI] ←DS:[SI],SI←SI 1

MOVSW ;ES:[DI] ←DS:[SI],SI←SI 2

(7)端口寻址:操作数在外设端口中。

直接端口寻址:指令中直接给出的8位常数是外设端口地址。 例:IN AL,34H ;AL←[34H] OUT 34H,AL ;[34H]←AL

间接端口寻址:指令中外设端口的16位地址在DX中。 例:MOV DX,280H

IN AL,DX ;AL←[280H] OUT DX,AL ;[280H]←AL

(8)隐含寻址:指令中没有给出操作数,但却隐含在固定对象中。

例:AAA ;隐含对AL操作,

1,DI←DI 2,DI←DI

三、数据传送指令

1. 通用数据传送指令 ① MOV dst,src 指令功能:dst←src, 标志寄存器:不影响,

操作数:src:通用寄存器、段寄存器、存储器操作数、立即数; dst:通用寄存器、段寄存器、存储器操作数。

29

注意点:src和dst必须类型一致(都是8位或者是16位); dst不能是立即数;

当操作数不是立即数时,两个操作数不能都是存储器操作数; 源操作数是立即数时,目的操作数不能是段寄存器;

CS不得作目的操作数。

例:MOV BX,CX ;BX←CX

MOV [2000H],BL ;DS:[2000H]←BL ① XCHG dst,src 指令功能:dst←→src 标志寄存器:不影响,

操作数:两操作数可以是通用寄存器和存储器。 注意点:两操作数不能都是存储器操作数; 两操作数类型必须一致。 例:XCHG AX,BX ;AX ←→BX ② PUSH src

指令功能:SP←SP-1,[SP]←srcH,SP←SP-1,[SP]←srcL 标志寄存器:不影响

操作数:寄存器(IP除外)或存储单元。

注意点:源操作数只能是16位,而不能是8位的。 ③ POP dst

指令功能:dstL←[SP],SP←SP+1,dstH←[SP],SP←SP+1 标志寄存器:不影响,POPF除外

操作数:同PUSH指令,但CS不能作为目的操作数。 注意点:目的操作数只能是16位的,而不能是8位的。 ④ XLAT(查表指令)

30

指令功能:AL←DS:[BX+AL]; 标志寄存器:不影响;

用途:用于查表,表首地址的偏移地址在BX中,表长度可达256字节。 2. 地址传送指令:用来传送操作数的地址。 ① LEA reg16,src 取偏移地址指令

指令功能:将源操作数的偏移地址送16位通用寄存器; 标志寄存器:不影响;

操作数:目的操作数是16位通用寄存器,源操作数是存储器操作数。 ② LDS reg16,src 和LES reg16,src 取地址指针指令

指令功能:将源操作数的有效地址所对应的双字存储单元的高16位内容送入DS(LES指令送入ES),低16位内容送入指令指定的16位通用寄存器;

标志寄存器:不影响。

例:设某双字存储单元偏移地址为3000H,双字数据为12345678H,则

LDS SI,[3000H] ;DS=1234H,SI=5678H LES DI,[3000H] ;ES=1234H,DI=5678H 3. 标志传送指令 专门用于对标志寄存器进行操作 ① LAHF ;AH ←FL ,标志寄存器低8位送AH ② SAHF ;FL←AH,AH的内容送标志寄存器低8位 ③ PUSHF ;标志寄存器内容压栈 ④ POPF ;栈顶内容送标志寄存器

注意点:SAHF和POPF指令将直接影响标志位,而其他传送均不会对标志位产生影响。

4. 输入/输出指令 用于主机与外设端口间的数据传送。 IN AL,n; IN AL,DX; IN AX,n; IN AX,DX

指令功能:从端口(地址为n或在DX中)输入8位数据到AL中或输入16位数据到AX中;

标志寄存器:不影响。

OUT n,AL; OUT DX,AL; OUT n,AX; OUT DX,AX 指令功能:从AL中输出8位数据到端口(地址为n或在DX中)或从AX中输出16位数据到端口(地址为n或在DX中)。

标志寄存器:不影响。

四、算术运算指令

1. 加法指令 ① ADD dst,src

31

指令功能:dst←src+dst

标志寄存器:影响AF、CF、PF、OF、ZF、SF 操作数:目的操作数:通用寄存器、存储器; 源操作数:通用寄存器、存储器、立即数; 注意点:两操作数必须类型一致;

两操作数不能同时为存储器操作数。 例:ADD AX,BX ;AX←AX+BX

ADD [BX+DI+64H],AX ;[BX+DI+64H]←AX ② ADC dst,src

指令功能:dst←dst+src+CF 其余同ADD指令。 ③ INC dst 指令功能:dst←dst+1

标志寄存器:影响OF、SF、ZF、AF、PF; 操作数:8位/16位通用寄存器或存储器; 注意点:不影响CF。 2. 减法指令 ① SUB dst,src 指令功能:dst←dst-src; 其余同ADD指令。

例:SUB BX,CX ;BX←BX-CX ② SBB dst,src

指令功能:dst←dst-src-CF; 其余同SUB指令。

例:SBB [BX+SI],AL ;[BX+SI] ←[BX+SI]-AL-CF ③ DEC dst 指令功能:dst←dst-1 其余同INC指令。 ④ NEG dst

指令功能:dst←0-dst或det←

+1

标志寄存器:影响AF、CF、PF、OF、ZF、SF; 操作数:8位/16位通用寄存器或存储器。 例:MOV AH,5

NEG AH ;AH=11111011B,是-5(补码) MOV AX,-6

32