微机原理第三章
- 格式:doc
- 大小:33.50 KB
- 文档页数:2
第3章指令系统机器指令:能指示计算机完成基本操作的二进制代码指令系统:CPU可执行的机器指令的集合。
为了方便编程,人们又把完成特定操作的机器码用特定的符号表示,这就产生了符号表示的机器指令-------指令助记符。
第3章8086指令系统机器指令由二进制代码组成,一条指令包括操作码和操作数(或地址)两部分,操作码指明该指令进行何种操作,操作数用来说明操作对象。
个别指只有操作码没有操作数。
由于不同的指令所表达的信息不尽相同,因此指令的长度即机器码字节数也有长有短。
8086指令系统的指令是可变长指令(1~6个字节)3.18086CPU寻址方式重点是存储器寻址存放在存储器中的数据称为存储器操作数。
指令中需要确定存储单元的段地址、偏移地址(亦称有效地址EA),以及存储器操作数的类型。
段地址存放在段寄存器中,确定段地址实际上就是确定段寄存器,采用的方法是默认或添加段超越前缀。
生成存储器有效地址有多种方法,这些方法形成了对存储器操作数的多种寻址形式。
确定数据类型的方法是源操作数和目的操作数类型一致原则或附加类型说明。
立即寻址方式中操作数也在存储器中,但立即寻址中的立即数包含在指令中,随程序存放在代码段,CPU在取指令时就获得操作数。
这里所说的存储器操作数是存放在数据段、附加段或堆栈段中,取指令时也不会被立即取到。
段超越前缀变量的定义在第四章详细介绍直接寻址:MOV AX,[2000H];寄存器间接寻址:MOV ES:[DI],AH基址寻址:MOV BYTE PTR[BX+1200H],10变址寻址:MOV DL,[SI+2AH]基址加变址寻址:MOV CL,[BX+SI+5]MOV AX,[BP+DI]MOV CL,[BX+SI+5]的等价形式:MOV CL,5[BX][SI]、MOV CL,5[BX+SI]、MOV CL,[BX][SI+5]MOV CL,[BX+SI-5]等价于MOV CL,[BX+SI+65531] MOV CL,[BX-SI]MOV CL,[SI+DI]错误!MOV[BX+DI],1000H正确吗?3.2.1数据传送类指令传送指令把数据从一个位置传送到另一个位置使用MOV指令应注意1.立即数只能作为源操作数2.无存储器之间直接传送与交换的指令3.没有用立即数对段寄存器直接赋值的指令4.段寄存器之间无传送指令5.两个操作数的类型要一致6.要能确定是字节还是字操作mov ah,al mov bvar,ch mov ax,bx mov ds,ax mov al,[bx]下列MOV指令正确吗?MOV AL,050AHMOV SI,DLMOV[BX+SI],255MOV DS,100HMOV[BX],[SI]MOV[BX+SI],bvarbvar是一个已定义过的字节变量 MOV CS,[SI]将数据段中偏移地址为2000H、2001H、2002H的3个字节的存储单元置数FFH。
微型计算机原理(第三章课后答案).第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是: (1) 数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Inde某)称为源变址寄存器。
一、选择题
1.IP指令指针寄存器是属于( )
a. 通用寄存器
b. 段寄存器
c. 变址寄存器
d. 控制寄存器
2.下面有语法错误的指令是( )
a. ADD AL,AH
b. ADD [BX+3],AL
c. ADD AH,[DI]
d. ADD [BP+2],DA1 (DA1是变量名)
3.完成对DX的有符号数除以2的指令是( )
a. IDIV 2
b. SAR DX,1
c. ROR DX,1
d. RCR DX,1
4.使进位位置1的指令是( )
a. CLC
b. CMC
c. STC
d. NOP
5.下面的XCHG指令中,语法正确的是( )
a. XCHG AL,DS
b. XCHG BL,[BX]
c. XCHG AL,0FH
d. XCHG BUF1,BUF2
6.一条指令中目的操作数不允许使用的寻址方式是( )
a. 寄存器寻址
b. 立即数寻址
c. 变址寻址
d. 寄存器间接寻址
7.设SP=1FFEH,执行下列指令后,SP寄存器的值是( )
POPF
PUSH AX
a.. 2000H
b. 2002H
c. 1FFCH
d. 1FFEH
8.LDS SI,ES:[2000H]指令的全部功能是( )
a. 把地址2000H送SI
b. 把地址2000H字单元的内容送SI
c. 把地址2000H字单元内容送SI,把2002H字单元内容送DS
d. 把地址2000H字单元内容送DS,把2002H字单元内容送SI 9.设AL=04H,BL=0F8H,执行MUL BL指令后,结果是( )
a. AX=0032H
b. AX=00E0H
c. AX=03E0H
d. AX=0FFE0H
10.假设字节单元(06925H)=12H,(06926H)=45H,(06927H)=78H,那么字单元(06925H)=(),字单元(06926H)=()。
a. 1245H
b. 4578H
c. 4512H
d. 7845H
11.逻辑运算指令都是按()进行操作的。
a. 位
b. 字节
c. 字
d. BCD码
12.互换指令XCHG可以在两个寄存器之间互换数据,也可以在()与()之间互换数据。
a. 寄存器
b. 立即数
c. 存储单元
d. 堆栈
13.下列指令中,不影响PSW的指令是:()
a. MOV
b. TEST
c. SAL
d. CLD
二、空题
1.BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数的物理地址。
MOV AL,[BP+20H]的物理地址是
MOV [BX+DI-80H],AL的物理地址是
MOV BL,ES:[SI+40H]的物理地址是
2.指出下列指令的错误。
①MOV AH,BX ②MOV [BX],[SI]
③MOV AX,[SI][DI] ④MOV CX,AX
⑤SAL AX,2 ⑥MUL AX,BX
⑦NOT CX,AX ⑧POP 5[CX][BX]
3.分别指出下列指令源操作数
....和目的操作数
.....的寻址方式。
01微机升学8088指令系统月考试题
①MOV AX,1000H ②MOV CX,DATA[SI]
③AND VALUE[BX][DI],BP ④MOV AX,SS:[BP+SI]
⑤MOV CX,[3000H] ⑥MOV 250H[BX][SI],’E’
三、根据以下要求选用相应的指令(只用一条指令)。
1.将AL寄存器的内容乘以2。
2.使BX寄存器的高3位为1,其余位不变。
3.使CL寄存器的D5位变反,其余位不变。
4.使AX寄存器中有符号数除以2。
5.把DATA的段地址和偏移地址装入DS和BX中。
6.把3000H传送给AX寄存器。
四、根据以下要求编写指令序列
1.WORD1T和WORD2是存放字数据的存储单元,使WORD1和WORD2两存储单元之间的数据交换。
2.把标志寄存器的溢出位OF变反。
3.寄存器AL中高、低四位交换。
4.寄存器DX和AX组成32位数左移一位。
五、分析执行下列程序完成什么功能。
PUSH AX
PUSH AX
SHL AX,1
MOV DX,AX
POP AX
ADD AX,DX
ADD AX,AX
MOV DX,AX
POP AX
ADD AX,DX。