福建工程学院国脉信息学院《微机》复习参考资料

7、相对基址变址寻址

? 在基址-变址寻址的基础上再加上一个相对位移量

EA=(BX)+(SI)或(DI)+8位或16位位移量;

EA=(BP)+(SI)或(DI)+8位或16位位移量

指令操作例:MOV AX,DATA[DI][BX]

若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H

则指令执行后(AH)=[83021H], (AL)=[83020H]

寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较:

寻址方式 指令操作数形式

? 寄存器间接 只有一个寄存器(BX/BP/SI/DI之一)

? 寄存器相对 一个寄存器加上位移量

? 基址—变址 两个不同类别的寄存器

? 相对基址-变址 两个不同类别的寄存器加上位移量

二、地址寻址方式(了解有4类,能判断)

简要判断依据(指令中间的单词):

段内直接 short,near

段内间接 word

段间直接 far

段间间接 dword

第二节 8086指令系统

一、数据传送指令(重点?)

1、通用传送指令

(1) MOV dest,src; dest←src

传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位。

具体来说可实现:

① MOV mem/reg1,mem/reg2

指令中两操作数中至少有一个为寄存器

② MOV reg,data ;立即数送寄存器

③ MOV mem,data ;立即数送存储单元

④ MOV acc,mem ;存储单元送累加器

⑤ MOV mem,acc ;累加器送存储单元

⑥ MOV segreg,mem/reg ;存储单元/寄存器送段寄存器

⑦ MOV mem/reg,segreg ;段寄存器送存储单元/寄存器

MOV指令的使用规则

①IP不能作目的寄存器

②不允许mem←mem

③不允许segreg←segreg

④立即数不允许作为目的操作数

⑤不允许segreg←立即数

⑥源操作数与目的操作数类型要一致

⑦当源操作数为单字节的立即数,而目的操作数为间址、变址、基址+变址的内存数时,必须用PTR说明数据类型。如:MOV [BX],12H 是错误的。

(2)、堆栈指令

什么是堆栈?

按“后进先出(LIFO)”方式工作的存储区域。堆栈以字为单位进行压入弹出操作。

规定由SS指示堆栈段的段基址,堆栈指针SP始终指向堆栈的顶部,SP的初值规定了所用堆栈区的大小。堆栈的最高地址叫栈底。

① 压栈指令PUSH

PUSH src ; src为16位操作数

例:PUSH AX ;将AX内容压栈

执行操作:(SP)-1←高字节AH

(SP)-2←低字节AL

(SP)←(SP)- 2 注意进栈方向是高地址向低地址发展。

② 弹出指令POP

POP dest

例:POP BX ;将栈顶内容弹至BX

执行操作:(BL)←(SP)

(BH)←(SP)+1

(SP)←(SP)+2

堆栈指令在使用时需注意的几点:

① 堆栈操作总是按字进行

② 不能从栈顶弹出一个字给CS

③ 堆栈指针为SS:SP,SP永远指向栈顶

④SP自动进行增减量(-2,+2)

(3)、交换指令XCHG

格式:XCHG reg,mem/reg

功能:交换两操作数的内容。

要求:两操作数中必须有一个在寄存器中;

操作数不能为段寄存器和立即数;

源和目地操作数类型要一致。

举例: XCHG AX,BX

XCHG [2000],CL

(4)查表指令XLAT 执行的操作:AL←[(BX)+(AL)]

又叫查表转换指令,它可根据表项序号查出表中对应代码的内容。执行时先将表的首地址(偏移地址)送到BX中,表项序号存于AL中。

2、输入输出指令 只限于用累加器AL或AX来传送信息。 功能: (累加器)←→I/O端口

(1) 输入指令IN

格式:

IN acc,PORT ;PORT端口号0~255H

IN acc,DX ;DX表示的端口范围达64K

例:IN AL,80H ;(AL)←(80H端口)

IN AL,DX ;(AL)←((DX))

(2) 输出指令OUT

格式:OUT port,acc

OUT DX,acc

例:OUT 68H,AX ;(69H,68H)←(AX)

OUT DX,AL ;((DX))←(AL)

在使用间接寻址的IN/OUT指令时,要事先用传送指令把I/O端口号设置到DX寄存器

如:

MOV DX,220H

福建工程学院国脉信息学院《微机》复习参考资料

IN AL,DX;将220H端口内容读入AL

3、目标地址传送指令LEA 传送偏移地址 格式:LEA reg,mem ; 将指定内存单元的偏移地址送到指定寄存器 要求:

1) 源操作数必须是一个存储器操作数;

2) 目的操作数必须是一个16位的通用寄存器。

例:LEA BX,[SI+10H]

设:(SI)=1000H

则执行该指令后,(BX)=1010H?

?注意以下二条指令差别:

LEA BX,BUFFER

MOV BX,BUFFER

前者表示将符号地址为BUFFER的存储单元的偏移地址取到 BX中;后者表示将BUFFER存储单元中的内容取到 BX中。

下面两条指令等效:

LEA BX,BUFFER

MOV BX, OFFSET BUFFER

其中OFFSET BUFFER表示存储器单元BUFFER的偏移地址。

二者都可用于取存储器单元的偏移地址,但LEA指令可以取动态的地址,OFFSET只能取静态的地址。

二、算术运算指令

1、 加法指令

(1) 不带进位的加法指令ADD

格式: ADD acc,data

ADD mem/reg,data

ADD mem/reg1,mem/reg2

实例:

ADD

ADD

ADD

ADD AL,30H SI,[BX+20H] CX,SI [DI],200H

?ADD指令对6个状态标志均产生影响。

例:已知(BX)=D75FH

指令 ADD BX,8046H 执行后,状态标志各是多少?

D75FH = 1110 0111 0101 1111

8046H = 1000 0000 0100 0110

1 1 11 11

0110 0111 1010 0101

结果:C=1, Z=0, P=0, A=1, O=1, S=0

判断溢出与进位(重点?)

从硬件的角度:默认参与运算的操作数都是有符号数,当两数的符号位相同,而和的结果相异时有溢出,则OF=1,否则OF=0

(1) 带进位的加法ADC

ADC指令在形式上和功能上与ADD类似,只是相加时还要包括进位标志CF的内容,例如:

ADC AL,68H ; AL←(AL)+68H+(CF)

ADC AX,CX ;AX←(AX)+(CX)+(CF)

ADC BX,[DI] ;BX←(BX)+[DI+1][DI]+(CF)

(3)加1指令INC

格式:INC reg/mem

功能:类似于C语言中的++操作:对指定的操作数加1

例: INC AL

INC SI

INC BYTE PTR[BX+4]

注:本指令不影响CF标志。

(4)非压缩BCD码加法调整指令AAA

AAA指令的操作:

如果AL的低4位>9或AF=1,则:

① AL←(AL)+6,(AH)←(AH)+1,AF←1

② AL高4位清零

③ CF←AF

否则AL高4位清零

(5)压缩BCD码加法调整指令DAA

?两个压缩BCD码相加结果在AL中,通过DAA调整得到一个正确的压缩BCD码.

?指令操作(调整方法):

若AL的低4位>9或AF=1

则(AL)←(AL)+6,AF←1

若AL的高4位>9或CF=1

则(AL)←(AL)+60H,CF←1

?除OF外,DAA指令影响所有其它标志。

?DAA指令应紧跟在ADD或ADC指令之后。

2、 减法指令

(1)不考虑借位的减法指令SUB 格式: SUB dest, src 操作: dest←(dest)-(src)

注:1.源和目的操作数不能同时为存储器操作数

2.立即数不能作为目的操作数

指令例子:

SUB AL,60H

SUB [BX+20H],DX

SUB AX,CX

(2)考虑借位的减法指令SBB SBB指令主要用于多字节的减法。 格式: SBB dest, src 操作: dest←(dest)-(src)-(CF)

指令例子:

SBB AX,CX

SBB WORD PTR[SI],2080H

SBB [SI],DX

(3)减1指令DEC 作用类似于C语言中的”--”操作符。 格式:DEC opr 操作:opr←(opr)-1 指令例子:

DEC CL

DEC BYTE PTR[DI+2]

DEC SI

(4)求补指令NEG 格式: NEG opr 操作: opr← 0-(opr)

对一个操作数取补码相当于用0减去此操作数,故利用NEG指令可得到负数的绝对值。

例:若(AL)=0FCH,则执行 NEG AL后,

(AL)=04H,CF=1

(5)比较指令CMP 格式: CMP dest, src 操作: (dest)-(src)

CMP也是执行两个操作数相减,但结果不送目标操作数,其结果只反映在标志位上。

指令例子:


百度搜索“爱华网”,专业资料、生活学习,尽在爱华网!  

爱华网本文地址 » http://www.aihuau.com/a/334151/362251731102.html

更多阅读

北京信息工程学院附属中学 圆通收费标准2016

岗位设置及聘任工作方案发布时间:2011-07-12 14:08:28一、单位基本情况单位全称:北京信息工程学院附属中学机构类别:区完中拨款形式:全额拨款的事业单位隶属关系:朝阳区教委机构规格: 三级副二、岗位设置总量根据区编办核准下达的编制总

青岛军政人文大学 青岛军政人文大学信息工程学院

信息工程学院是青岛军政人文大学的北校区www.qdjzh.cn青岛军政人文大学是全国唯一一所军政共创的大学,具有多学科、综合型,具有鲜明特色的高等学府,1986年建校,下设信息工程学院、法学院、经济学院、文理学院、外语学院、艺术学院、成人

声明:《福建工程学院国脉信息学院《微机》复习参考资料》为网友愈合了心情分享!如侵犯到您的合法权益请联系我们删除