微机原理与接口技术(第3章)

合集下载

《微机原理与接口技术(80386-Pentium)》-第3章80486系统原理

《微机原理与接口技术(80386-Pentium)》-第3章80486系统原理
9
惟一差别是80486又新定义了一个AC 标志位(即标志 寄存器的位18),也就是对准校验标志(Alignment Checkout Flag)。 若AC位为1时,80486就允许对没有对准的数据进行 对准检查,既可以是对字对准进行检查,也可以对双 字甚至四字的对准进行检查。若80486发现在进行存 储器操作时出现没有按边界对准情况,就发生数据访 问异常事故,并把这种异常事故编号为异常事故17。 若AC位为0则不检查。 如果对存储器进行读写操作时,使用的是一个未对准 的地址,80486就允许产生异常事故信号。若AC=1, 若出现了单字存储操作时使用的是奇地址,双字存储 操作使用的不是双字边界内地址,或者在进行四字(8 个字节)存储操作时使用的不是四字边界内地址,就 会出现数据访问不对准异常。
15
图3.4示出80486微处理机CPU的逻辑框图。 图中的Cache部件、8K• 节的统一Cache、 字 以及浮点部件FPU和EP寄存器组在以 80386为基础的系统内属于不同的独立芯 件,并不在80386 CPU芯片之内,而在 80486中这些部件变成了80486 CPU的一 个组成部分。 这两个新集成到80486 CPU内的部件,一 个是浮点部件FPU,它有效地提高了浮点 操作性能;另一个是指令和数据共用的高 速缓冲存储器Cache。
7
3.标志寄存器EFLAGS
80486的标志寄存器是一个32位寄存器,如图3.3所 示。它的作用是用来存放有关80486微处理机的状态 标志信息、控制标志信息以及系统标志信息。 80486的状态标志信息报告的是算术运算类指令在执 行完之后的机器状态。控制标志仅有一个即DF标志, 用来控制串操作过程中执行方向问题,即是给目标变 址寄存器EDI、源变址寄存器EDI、源变址寄存器 ESI 增值还是增负值(减值)问题。系统标志信息用来控 制输入/输出、屏幕中断、调试、任务转换和控制保 护模式与虚拟8086模式间的转换等操作。 对绝大多数系统来说,若通过应用程序改变系统标志 寄存器中的标志状态,都将引起一个异常事故出现。 拿80486的标志寄存器与 80386的标志寄器进行比较 后会发现,二者几乎完全一样。 8

微机原理和接口技术张颖超叶彦斐第3章习题答案解析

微机原理和接口技术张颖超叶彦斐第3章习题答案解析

习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。

微机原理与接口技术 张颖超 叶彦斐 第3章 习题解答

微机原理与接口技术 张颖超 叶彦斐 第3章 习题解答

习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。

微机原理与接口技术第3章(指令部分)

微机原理与接口技术第3章(指令部分)
第 3 章 指令系统及汇编语言程序设计
例:编程计算 0+1+2+3+4+ -----10 编程计算
MOV AL,0 , MOV BL,1 , MOV CL,10 NEXT:ADD AL,BL , INC BL DEC CL JNZ NEXT ;CL≠0 转 ≠ HLT
1
3.1 概述 一、指令包含的基本内容
12
(3)相对寻址
例: MOV AX, [SI+100H]
;结果 : 结果 AX (DS×16+SI+100H) ×
例:MOV AL,[BP+DATA] MOV AL, DATA[BP] ; DATA是符号表示的位移量。 表示的位移量 是符号表示的位移量。
结果 : AL (SS×16+BP+DATA) ×
11
(2)间接寻址 例:MOV AX,[BX] , •结果 : AX 结果 (DS×16+BX) ×
...
3000H:0000H : • EA= BX /SI /DI , 物理地址=DS*16+EA 物理地址 • EA= BP 物理地址=SS*16+EA 物理地址 :1234H :50H :1235H :30H
1. 做什么操作? 做什么操作? MOV ,ADD, OR,CMP等助记符 等助记符
2. 操作的数据是什么? ①CPU内的寄存器; 操作的数据是什么? 内的寄存器 内的寄存器; 内存的某一个或几个单元 单元; ②内存的某一个或几个单元; 结果放在那里? 3. 结果放在那里? 立即数。 ③立即数。 端口; 端口 ④I/O端口; 下一条指令在哪里? 4. 下一条指令在哪里? IP←IP+1

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

微机原理与接口技术 (第三版)电子工业出版社 第03章 8086的指令系统

4、寄存器间接寻址(Register indirect addressing) 内存单元的逻辑偏移地址通过寄存器 间接给出。 例: MOV SI , 61A8H MOV DX , [SI]
5、基址/变址寻址(Based/Indexed addressing) 位移量是一带符号的16位16进制数。当 使用BX或BP寄存器时,称基址寻址;使用SI 或DI寄存器时,称变址寻址。 例: MOV CX , 36H[BX] MOV -20[BP] , AL
2、MOV数据传送指令 其格式为: MOV 目的操作数,源操作数 • 目的操作数和源操作数均可采用不同的寻 址方式, • 两个操作数的类型必需一致。
二、寻址方式介绍பைடு நூலகம்
1.立即寻址(Immediate addressing) 操作数就在指令中,紧跟在操作码后面, 作为指令一部分存放在内存的代码段中,这 种操作数称为立即数。 例: MOV AX , 34EAH MOV BL , 20H
3)、段间直接转移 JMP far PTR 目标地址 4)、段间间接转移 JMP WORD PTR[BX][SI]
2、条件转移指令
1)、单条件转移指令 ① JC ② JNC ③ JE/JZ ④ JNE/JNZ ⑤ JS ⑥ JNS ⑦ JO ⑧ JNO ⑨ JP/JPE ⑩ JNP/JPO ;CF标志为1,则转移 ;CF标志为0,则转移 ;ZF标志为1,则转移 ;ZF标志为0,则转移 ;SF标志为1,则转移 ;SF标志为0,则转移 ;OF标志为1,则转移 ;OF标志为0,则转移 ;PF标志为1,则转移 ;PF标志为0,则转移
3、目标地址传送指令
这类指令有: 1)LEA 有效地址传送到寄存器 2)LDS 装入一个新的物理地址 3)LES 装入一个新的物理地址

微机原理与接口技术张颖超叶彦斐第3章习题答案

微机原理与接口技术张颖超叶彦斐第3章习题答案

习题1.指出下列指令中操作数的寻址方式(1) MOV BX, 20H (2) MOV AX, [1245H](3) MOV DX, [SI] (4) MOV 100[BX], AL(5) MOV [BP][SI], AX (6) MOV [BX+100][SI], AX(7) MOV [1800H], AL (8) MOV [SI], AX答:源操作数目的操作数1 立即寻址寄存器寻址2 直接寻址寄存器寻址3 寄存器间接寻址寄存器寻址4 寄存器寻址寄存器相对寻址5 寄存器寻址基址加变址寻址6 寄存器寻址相对基址加变址寻址7 寄存器寻址直接寻址8 寄存器寻址寄存器间接寻址2. 判断下列操作数寻址方式的正确性,对正确的指出其寻址方式,错误的说明其错误原因:(1) [AX] (2) [SI+DI](3) BP (4) BH(5) DS (6) [BL+44](7) [BX+BP+32] (8) [DX](9) [CX+90] (10) [BX*4](11) BX+90H (12) SI[100H]答:(1) 错误,AX不能用于访问内存单元(2) 错误,两个变址寄存器SI和DI不能同时用于内存单元的有效地址(3) 正确,寄存器寻址方式(4) 正确,寄存器寻址方式(5) 正确,寄存器寻址方式(6) 错误,寄存器BL不能用于表示内存单元的有效地址(7) 错误,BX和BP都是基址寄存器,不能同时用于内存单元的有效地址(8) 错误,DX不能用于表示内存单元的有效地址(9) 错误,CX不能用于表示内存单元的有效地址(10)错误,16位寄存器不能乘以比例因子(11) 错误,没有这样的寻址方式(12) 错误,书写方式不对,应该写成100H[SI]3. 已知DS=2000H,ES=1000H,SS=1010H,SI=1100H,BX=0500H,BP=0200H,请指出下列源操作数字段是什么寻址方式?源操作数字段的物理地址是多少?(1) MOV AL, [2500H](2) MOV AX, [BP](3) MOV AX, ES:[BP+10](4) MOV AL, [BX+SI+20]答:(1)源操作数属于直接寻址,物理地址=DS⨯16+2500H=20000H+2500H=22500H;(2)源操作数属于寄存器间接寻址,物理地址=SS⨯16+(BP)=10100H+0200H=10300H(3)源操作数属于寄存器相对寻址,物理地址=ES⨯16+(BP)+100=10000H+0200H+0AH=1020AH(4)源操作数属于基址加变址寻址,物理地址=DS⨯16+(BX)+(SI)+20=20000H+0500H+1100H+14H=21614H4. 判断下列指令的对错,如果错误请说明原因。

微机原理与接口技术(楼顺天编着)课后习题答案

微机原理与接口技术(楼顺天编着)课后习题答案

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。

微机原理与接口技术牟琦贾建萍清华大学出版第三章答案

微机原理与接口技术牟琦贾建萍清华大学出版第三章答案

微机原理与接口技术牟琦贾建萍清华大学出版第三章答案CH03 汇编语言程序设计习题与思考题1.下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。

V AR1 DB 10,2V AR2 DW 5 DUP(?),0V AR3 DB ‘HOW ARE YOU?’,3 DUP(1,2)V AR4 DD -1,1,0解答:字节空间----V AR1:2;V AR2:12;V AR3:20;V AR4:12。

存储空间的分配图:DS:0000 0A 02 00 00 00 00 00 00—00 00 00 00 00 00 48 4F 0010 57 20 20 41 52 45 20 20—59 4F 55 3F 01 02 01 020020 01 02 FF FF FF FF 01 00—00 00 00 00 00 002.假定V AR1 和V AR2 为字变量,LAB 为标号,试指出下列指令的错误之处。

(1)ADD V AR1,V AR2 (2)SUB AL,V AR1 (3)JMP LAB[CX] (4)JNZ V AR1(5)MOV [1000H],100 (6)SHL AL, 4解答:(1)两个操作数中至少有一个为寄存器;(2)AL 为字节,V AR1 为字变量,不匹配;(3)[]中不能用CX,LAB 为标号,非变量;(4)转向地址应为标号,不能是变量;(5)目的操作数的类型不确定;(6)SHL 指令中,当所移位数超过1 时,必须用CL 或CX 来取代所移位数。

3.对于下面的符号定义,指出下列指令的错误。

A1 DB ?A2 DB 10K1 EQU 1024(1)MOV K1,AX (2)MOV A1,AX(3)CMP A1,A2 (4)K1 EQU 2048解答:(1)K1 为常量,不能用MOV 指令赋值;(2)A1 为字节,AX 为字变量,不匹配;(3)A1 未定义,无法做比较指令;(4)K1 重新赋值前,必须用PURGE 释放。

微机原理与接口技术(第二版)习题答案-第三章

微机原理与接口技术(第二版)习题答案-第三章

习题31.假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少?(1)MOV AX, 0ABH (2) MOV AX, [100H](3) MOV AX, V AL (4) MOV BX, [SI](5) MOV AL, V AL[BX] (6) MOV CL, [BX][SI](7) MOV V AL[SI], BX (8) MOV [BP][SI], 100答:(1) 立即数寻址,无物理地址(2) 直接寻址,物理地址=2000H×10H+100H=20100H(3) 直接寻址,物理地址=2000H×10H+0050H=20050H(4) 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H(5) 相对寄存器寻址,物理地址=2000H×10H+(0050+0100H)=20150H(6) 基址加变寻址,物理地址=2000H×10H+(0100H+00A0H)=201A0H(7) 寄存器寻址,无物理地址(8) 立即数寻址,无物理地址2.已知(SS)=0FFA0H,(SP)=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。

答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP 自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H 指向00B2H。

图略。

3.设有关寄存器及存储单元的内容如下:(DS)=2000H, (BX)=0100H, (AX)=1200H, (SI)=0002H, (20100H)=12H, (20101H)=34H, (20102H)=56H, (20103H)=78H, (21200H)=2AH, (21201H)=4CH, (21202H)=0B7H, (21203H)=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容。

第3章_指令及动画

第3章_指令及动画
PUSH the Flags
• 将栈顶内容弹出到标志寄存器
POP the Flags
–均为单字节指令。 – SAHF和POPF影响标志位。
电子信息学院 严华, 卿粼波 微机原理与接口技术 26
算术运算指令
3.2.2 算术运算
• 加法指令 (3)
– ADD、ADC、INC
• 减法指令 (5)
– SUB、SBB、DEC、NEG、CMP
电子信息学院 严华, 卿粼波 微机原理与接口技术 25
标志传送指令
3.2.1 数据传送 • 标志寄存器低8位传送给AH
Load AH with Flags
LAHF
SAHF
PUSHF POPF • 说明
• 将AH传送给标志寄存器低8位
Store AH into Flags
• 将16位标志寄存器内容入栈
微机原理与接口技术
34
除法指令
3.3.2 算术运算
DIV src
IDIV src
• 除法:
字节 AL←AX÷src AH ← AX % src 字 AX←DX:AX÷src DX ← DX:AX % src
• DIV执行8位或16位无符号数的除法。 • IDIV执行8位或16位带符号数的除法。 • 注意
立即寻址的例子
3.1 寻址方式
MOV AX, 0102H
;AX←0102H
电子信息学院 严华, 卿粼波3 微机原理与接口技术
寄存器寻址的例子
3.1 寻址方式
MOV AX, BX
;AX←BX
电子信息学院 严华, 卿粼波4 微机原理与接口技术
直接寻址的例子
3.1 寻址方式
MOV AX, [2000H] ;AX←DS:[2000H]

第3章(1)微机原理与接口技术(第三版)(王忠民)

第3章(1)微机原理与接口技术(第三版)(王忠民)
1. 主频从8086的4.77MHz到80586的166MHz, PentiumⅡⅣ更高,可达3GHz。主频是指芯片所使用 的主时钟频率,它直接影响计算机的运行速度。
第三章 80x86微处理器
第三章 80x86微处理器
2. 数据总线从8086的16位到80586的64位。数据 总线是计算机中组成各部件间进行数据传送时的公共 通道。其位数(宽度)表示CPU的字长,数据总线位数 越多,数据交换的速度越快。
微机原理与接口技术
——第三章 80x86微处理器
西安邮电大学 计算机学院
范琳
第三章 80x86微处理器
1
80x86 微处理器简介
2
8086 微处理器
3
8086 寄存器
4
8086 引脚功能
5
8086 存储器组织
第三章 80x86微处理器
3.1 80x86微处理器简介
80x86微处理器是美国Intel公司生产的系列微处 理器。从8086开始到目前已进入第五代微处理器: 8086(8088)、80286、80386、80486和80586 (Pentium、Pentium ⅡⅣ)。其主要发展特点是:
近的数据可能很快就会被使用。
所以,层次结构的存储器系统,可以将最近访问 过的内容放入Cache,将近期访问过内容所属的整 个块放入Cache。
第三章 80x86微处理器
80x86CPU在发展过程中,存储器的管理机制也 发生了较大变化。
8086/8088CPU:分段实方式 80286CPU:分段实方式、保护方式(可提供虚 拟存储管理和多任务管理机制)。 8038680586CPU:分段实方式、保护方式、虚 拟8086方式(可同时模拟多个8086处理器工作)。

微机原理与接口技术第三章

微机原理与接口技术第三章

实体说明及其外部接口信号关系
3.2.1 实体说明
1. 实体名
实体具体取名由设计者自定,但由于实体名实际
上表达的是该设计电路的器件名,所以最好根据相 应电路的功能来取定。例:counter16

实体名的命名要满足VHDL语言定义标识符的规则。
①第一个字符必须是字母; ②字母不区分大小写;③下划线
不能连用;④最后一个字符不能是下划线。
1 LIBRARY IEEE; 库和包说明部分 2 USE IEEE.STD_LOGIC_1164.ALL; 3 USE IEEE.STD_LOGIC_UNSIGNED.ALL; 4 5 6 7 8 9 ENTITY counter16 is GENERIC(n: INTEGER:=4); 实体说明部分 PORT(clk: IN STD_LOGIC; --时钟输入端 co:OUT STD_LOGIC; --进位输出端 q :OUT STD_LOGIC_VECTOR(n-1 DOWNTO 0)); END counter16;
3.2.1 实体说明
3. 端口(PORT)说明语句 端口说明语句指明实体的输入/输出信号及其模式。
端口说明语句的语法结构为:
PORT(端口名:端口模式 数据类型; … 端口名:端口模式 数据类型);
1) 端口名 端口名对应于元件符号的每个外部引脚的名称,一般由英 文字母组成。名字的定义有一定的惯例,如clk表示时钟,d开 头的端口名表示数据,a开头的端口名表示地址等。
STD_LOGIC_VECTOR等。建议:端口数据类型
只使用BIT、BIT_VECTOR、STD_LOGIC、 STD_LOGIC_VECTOR等具有电路特性的类型, 而不使用BOOLEAN、INTEGER 等数学意义明显 的类型。

微机原理与接口技术(楼顺天编着)课后习题答案

微机原理与接口技术(楼顺天编着)课后习题答案

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’, ’word’, ’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。

解:var1 DW 4512H,4512,-1,100/3,10H,65530var2 DB ’BYTE’,’word’,’WORD’buf1 DB 100 DUP(?)buf2 DB 7 DUP(5 DUP(55H),10 DUP(240))var3 DB LENGTH buf1pointer DW var1,buf1 (或者pointer DW OFFSET var1,OFFSET buf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1 DB 12,-12,20/6,4 DUP(0,55H)var2 DB ‘Assemble’var3 DW ‘AB’, ‘cd’, ‘E’var4 DW var2var5 DD var2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1, VAR2为字变量, L1为标号):(1)MOV SI,100 (2)MOV BX,VAR1[SI](3)MOV AX, [BX] (4)MOV AL, [DX](5)MOV BP, AL (6)MOV VAR1, VAR2(7)MOV CS, AX (8)MOV DS, 0100H(9)MOV [BX][SI], 1 (10)MOV AX, VAR1+VAR2(11)ADD AX, LENGTH VAR1 (12)OR BL, TYPE VAR2(13)SUB [DI], 78H (14)MOVS VAR1, VAR2(15)PUSH 100H (16)POP CS(17)XCHG AX, ES (18)MOV DS, CS(19)JMP L1+5 (20)DIV AX, 10(21)SHL BL, 2 (22)MOV AL, 15+23(23)MUL CX (24)XCHG CL, [SI](25)ADC CS:[0100], AH (26)SBB VAR1-5,154解:(1)MOV SI,100 正确。

微机原理与接口技术课件:第3章_3 加1指令INC(单操作数指令)

微机原理与接口技术课件:第3章_3 加1指令INC(单操作数指令)
13
乘法指令对CF/OF的影响:
MUL指令: CF/OF = 00 乘积的高一半为零 11 否则
IMUL指令: CF/OF = 00 11
乘积的高一半是低一半的符号扩展 否则
例:(AL) = A5H(-5B),(BL) = 11H
(1) IMUL BL (2) MUL BL
; (AX) (AL)×(BL)
6
(4) 求补指令NEG
格式: NEG opr 操作: opr← 0-(opr)
对一个操作数取补码相当于用0减去此操作 数,故利用NEG指令可得到负数的绝对值。 例:若(AL)=0FCH,则执行 NEG AL 后,
(AL)=04H,CF=1 本例中,0FCH为-4的补码,执行求补指令后, 即得到4(-4的绝对值)。
格式:INC reg/mem 功能:类似于C语言中的++操作:对指定的
操作数加1 例: INC AL
INC SI INC BYTE PTR[BX+4]
注:条件标志位(CF/OF/ZF/SF)的影响:
SF=
1 结果为负 0 否则
ZF=
1 0
结果为0 否则
CF=
23
实际上当低4位的结果>9(即A~F之间)时, 也应进行加6调正。(原因是逢十没有进位, 故用加6的方法强行产生进位。)
如对上例的结果进行加6:
0001 0001 11
+ 0000 0110
6
0001 0111 17
结果正确。
24
例2:有两个字符串形式的十进制数,2658和 3619,求二者之和。即2658+3619=?
指令例子:
SUB AL,60H SUB [BX+20H],DX SUB AX,CX

《微机原理与接口技术》徐惠民 微机原理与接口技术3章

《微机原理与接口技术》徐惠民 微机原理与接口技术3章
MOV AL,[2000H]; MOV [3000H],AL
数据传送指令
③ 两个段寄存器之间不能直接传送信息,也不允许 用立即寻址方式为段寄存器赋初值; (X) MOV DS, 100H; (X) MOV DS, ES;
④ 目的操作数,不能用立即寻址方式。
⑤ MOV指令不影响标志位
数据传送指令
2.堆栈指令
功能:从I/O端口输入数据至AL或AX.
输入指令允许把一个字节或一个字 由一个输入端口传送到AL或AX中。若端 口地址超过255时,则必须用DX保存端 口地址,这样用DX作端口寻址最多可寻 找64K个端口。
8086/8088通过 输入输出指令与 外设进行数据交 换;呈现给程序 员的外设是端口 (Port)即I/O地 址。
一般格式:
LES OPRD1,OPRD2
这条指令除将地址指针的段地址部分送入ES外,与 LDS类似。
例如: LES DI,[BX]
数据传送指令
6.标志寄存器传送(有四条标志传送指令)
⑴ LAHF (LOAD AH WITH FLAG) 将标志寄存器中的S、Z、A、P和C(即低8 位)传送至AH寄存器的指定位,空位没有定 义。
2、寄存器寻址
操作数就放在CPU的内部寄存器中,AX、BX、CX、DX、 DI、SI、SP和BP,不需要访问存储器。
例:INC CX MOV AX,BX 若执行前 AX =30A6H, BX =69EDH, CX =40D9H 则执行后 AX =69EDH, BX内容不变 CX =40DAH
3.1 8088/8086的寻址方式
– 操作数是指令执行的参与者,即各种操作的对象。 – 有些指令不需要操作数,通常的指令都有一个或两
个操作数,也有个别指令有3个甚至4个操作数。

微机原理与接口技术第三章试题及答案

微机原理与接口技术第三章试题及答案

第三章3-1选择题1、MOVX A,@DPTR指令中源操作数的寻址方式是(B)(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)立即寻址2.ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是(B)(A)0003H (B)2000H (C)000BH (D)3000H3.执行PUSH ACC指令,MCS-51完成的操作是(A)(A)SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP(B)(C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP4、LCALL指令操作码地址是2000H,执行完相子程序返回指令后,PC=(D)(C)2000H (B)2001H (C)2002H (D)2003H5、51执行完MOV A,#08H后,PSW的一位被置位(D)(A)(A)C (B)F0 (C)OV (D)P6、下面条指令将MCS-51的工作寄存器置成3区(B)(A)MOV PSW,#13H (B)MOV PSW,#18H(B)SETB PSW.4 CLR PSW.3 (d) SETB PSW.3 CLR PSW.47、执行MOVX A,DPTR指令时,MCS-51产生的控制信号是(C)(D)/PSEN (B)ALE (C)/RD (D)/WR8、MOV C,#00H的寻址方式是(A)(A)位寻址(B)直接寻址(C)立即寻址(D)寄存器寻址9、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执行完左边的程序后,PC的值是(C)(A)0040H (B)0041H (C)0042H (D)0043H10、对程序存储器的读操作,只能使用(D)(A)MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令3-2判断题。

4.MCS-51的相对转移指令最大负跳距是127B。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

返回
3.1 概述
指令是控制计算机完成指定操作,并且能够被计算机所识 别的命令。计算机所能识别的所有指令的集合称作指令系统, 不同系列计算机(或者说不同的微处理器)有着不同的指令系 统。指令系统定义了计算机硬件所能完成的基本操作,其功能 的强弱在一定程度上决定了硬件系统性能的高低。 与上一代微处理器的指令系统相比, 8086/8088 指令系统 的功能有了很大扩充,主要表现在: 1)有 8 个通用寄存器均可作累加器使用。 2)可进行字节或字的处理。 3)有重复指令和乘除运算指令。 4)扩充了条件转移,移位/循环指令。 5)可进行有符号数的运算。 6)有软中断和协调多处理器工作的指令。
3.2.4 寄存器间接寻址
寄存器间接寻址与寄存器寻址的根本不同在于寄存器 所表达的内容不同。寄存器间接寻址是用寄存器的内容表 示操作数的偏移地址,而寄存器寻址是用寄存器的内容表 示操作数本身。 寄存器间接寻址指令中的操作数在存储单元中,用于 存放操作数偏移地址的寄存器只能是 BX、 BP、 SI 或者 DI 四个寄存器之一,因此它们也简称为间址寄存器或地址 寄存器。默认情况下,选择 SI、 DI、 BX 作为间址寄存器 时,操作数在数据段,段地址由 DS 决定;选择 BP 作为间 址寄存器时,则操作数在堆栈段,段地址由 SS 决定。可以 段重设。
3.2.1 立即寻址
【例 3.1】 指令“ MOV AX, 1234H”表示将 16 位立即 数 1234H 送入累加寄 AX 中, 指令执行后, AH=12H, AL=34H。指令执行过程如图 3-2 所示。
3.2.2 寄存器寻址
在寄存器寻址方式下,指令的操作数位于 CPU 的内部 寄存器中。这些寄存器可以是 8 位的通用寄存器 ,也可以 是 16 位的通用寄存器 ,还可以是地址指针、变址寄存器以 及段寄存器。寄存器寻址指令的操作数既可以是源操作数, 也可以是目标操作数,指令中直接给出寄存器名称。 【例 3.2】 指令“ MOV AX, BX”表示将 BX 中的内 容放入 AX 中。指令执行前 AX=1122H, BX=3344H,则 指令执行后, BX 的内容保持不变, AX=3344H,指令的 执行过程如图 3-3 所示。
3.2.3 直接寻址
直接寻址方式表示操作数存放在内存单元中,存放的地址 由指令直接给出,即指令中的操作数是存储器操作数。由于操 作数的地址直接给出而不需要经过某种变换,所以称这种寻址 方式称为直接寻址方式。 直接寻址需要注意的几点: 1)在程序中,直接寻址的地址要写在方括号“ [ ]”内。 2)在直接寻址中,指令操作数字段中存放的是操作数的 16 位偏移地址 EA,操作数的物理地址由其所在段的寄存器内 容左移 4 位与指令中给出的偏移地址 EA 相加形成。 3)如果没有特殊说明,直接寻址的操作数一般在内存的 数据段中,即隐含的段寄存器是DS。但是 8086/8088 也允许段 重设此时需要在指令中要用段重设符号加以声明。方法是在有 关操作数的前面写上段寄存器的名字,再加上冒号。
3.1.1 指令的基本构成
3.段重设
8086/8088 对段寄存器使用的约定和允许段重设的情况 见表 3-2。
3.1.2 指令执行时间
一条指令的执行时间包括:取指令、取操作数、执行指 令及传送结果等几个部分,单位用时钟周期数表示。不同指令 的执行时间有较大的差别。 寄存器操作数的指令执行速度最快,其次是立即数操作数 指令,存储器操作数指令的执行速度最慢。这是由于寄存器在 CPU 内部,执行指令时, CPU 的执行单元可以直接从 CPU 内部的寄存器中获取操作数,不需访问内存,因此执行速度很 快;对于立即数操作数,由于立即数操作数是指令的一部分, 因此它位于总线接口单元的指令队列中,执行指令时也不需要 访问内存,因此执行速度也比较快;而存储器操作数位于内存 单元中,为了获取操作数,首先要由总线接口单元计算出该操 作数所在的 20 位物理地址,由于对内存进行了访问,因此相 对前两类操作数指令而言,存储器操作数指令Байду номын сангаас执行速度最慢。
3.2.4 寄存器间接寻址
【 例 3.5】 选择 SI、 DI、 BX 作间址寄存器,则操作数的 物理地址为 DS×10H+EA=DS×10H+(BX、 SI、 DI 之一) 如果 DS=1000H, SI=2000H,则执行指令“ MOV AX, [SI]”, 计算得存储单元物理地址: DS×10H+SI=12000H。 具体执行过程如图 3-5 所示。 执行结果: AX=2211H。
3.2.8 隐含寻址
有的指令操作码中,不仅包含操作码的性质,还隐 含了部分操作数的地址,这种将一个操作数隐含在指令 码中的寻址方式称为隐含寻址。如指令“ MUL BL”的 功能是把 AL 中的内容与 BL 中的内容相乘,乘积送到 AX 寄存器,这条指令隐含了被乘数 AL 及乘积 AX。 由于隐含寻址指令的操作数实质上也是位于 CPU 内部的寄存器中, 所以有的教材把这种寻址方式归结为 寄存器寻址。
3.2.7 基址—变址相对寻址
【例 3.10】 指令“ MOV AX, DATA[DI][BX]”的寻址过程示例。 假设 DS=8000H, BX=2000H, DI=1000H, DATA=200H。 由于使用的基址寄存器是 BX,且没有进行段重设,所以该指令 操作数的物理地址是: DS×10H+BX+DI+DATA =80000H+2000H+1000H+200H =83200H。由于是字操作, 所以该指令把地址为 83200H 的两个连续存储单元的内容 送到 AX。 执行结果: AX=6655H。 指令执行过程如图 3-9 所示。
微机原理与接口技术
王亭岭 主编 熊军华 周玉 副主编


第 3章
8086/8088指令系统
学习目标:

理解指令系统基本概念


掌握指令系统涉及到的各种寻址方式
掌握六大类指令的功能和使用方法
3.1 概述
3.1.1 指令的基本构成 3.1.2 指令的执行时间
注意:使用基址—变址寻址方式时,不允许将两个基 址寄存器或两个变址寄存器组合在一起使用,即指令中不 允许同时出现两个基址寄存器或两个变址寄存器;也不允 许出现其他的寄存器。
3.2.6 基址—变址寻址
【例 3.9】 指令“ MOV AX, [BX] [SI]”的寻址过程如图 3-8 所示。 设 DS=1000H, BX=2000H, SI=1000H,则操作数的物 理地址 =DS×10H+BX+SI =10000H+2000H+1000H =13000H。 指令执行后, AL=( 13000H) =77H, AH=( 13001H) =88H, 即 AX=8877H。
【例 3.7】 指令“ MOV AX, DATA[BX]”的寻址过程实例。 设 DS=1000H, BX=2000H, DATA=0005H,则操作数所 在的物理地址 =DS×10H+BX+DATA =10000H+2000H+0005H =12005H。 执行结果: AX=3344H。 执行过程如图 3-7 所示。
3.2.7 基址—变址相对寻址
基址—变址相对寻址方式实际上是基址—变址寻址 方式的扩充。指令中规定了一个基址寄存器( BX 和 BP 两者之一)和一个变址寄存器( SI 和 DI 两者之一), 同时还给出一个 8 位或 16 位的位移量,将三者的内容相 加得到操作数的有效地址。 同样地, 基址—变址相对寻址指令不允许同时出现 两个基址寄存器或者两个变址寄存器;也不允许出现其 他寄存器。
3.2.5 寄存器相对寻址
在寄存器相对寻址 中,操作数在内存中的偏移地 址由间址寄存器的内容加上指令中给出的位移量组成。 这个位移量可以是 8 位的,也可以是 16 位的。因为 位移量可以看作一个相对值,所以把这种带有位移量 的寄存器间接寻址称为寄存器相对寻址。 计算偏移地址的方法如下:
3.2.5 寄存器相对寻址
3.1.1 指令的基本构成
2.指令中的操作数类型 ( 1)立即数操作数 立即数是指具有固定数值的操作数,即常数,在程序执行 过程中不会发生变化。 需要注意的是立即数操作数在指令中只能用作源操作数。 ( 2)寄存器操作数 8086/8088 CPU 的 8 个通用寄存器和 4 个段寄存器可以作 为指令中的寄存器操作数,它们都可以作为源操作数。除了代 码段寄存器 CS,其他的寄存器也可以作为目标操作数。 通用寄存器通常用来存放参加运算的数据或者数据所在存 储器单元的偏移地址。段寄存器用来存放当前操作数的段地址。 ( 3)存储器操作数 存储器操作数是指参加运算的操作数存放在存储单元当中。
3.2.4 寄存器间接寻址
【 例 3.6】 选择 BP 作间址寄存器,则操作数的物理地址为 SS×10H+EA=SS×10H+BP 若 SS=1000H , BP=3000H , AX=2211H,执行指令 MOV [BP], AX 计算存储单元物理地址: SS×10H+BP=13000H 执行过程如图3-6 所示。
3.1 概述
按照功能可将8086/8088 CPU 的指令系统划分为 六大类,见表 3-1。
3.1 概述
3.1.1 指令的基本构成
1.指令的一般格式 一条指令通常由两部分组成,如图3-1所示。第一部 分为操作码(也称指令码,指令助记符),这一部分是 指令中必须存在的部分。必要时,可在操作码的前面加 上前缀。第二部分是操作数,即指令操作的对象。有些 指令不需要操作数,此时指令只由操作码组成;有些指 令只需要一个操作数;有些指令则需要两个操作数,这 时必须用逗号将两个操作数分开。
3.1.1 指令的基本构成
根据操作数的个数,指令在格式上具有以下 3 种形式。 ( 1)零操作数指令。指令在形式上只有一个操作码。 这类指令操作的对象通常是处理器 本身,如指令“ HLT”。 ( 2)单操作数指令。指令在形式上只有一个操作数, 如指令“ INC CX”。 ( 3)双操作数指令。指令在形式上有两个操作数,这 两个操作数必须用逗号分开,分别表示目标操作数(也称目 的操作数)和源操作数,格式如图 3-1 所示。如指令“ MOV AX, 2000H”,其中 AX 表示目标操作数, 2000H 表示源操作 数。
相关文档
最新文档