8086汇编语言指令的寻址方式有哪几类
- 格式:doc
- 大小:60.00 KB
- 文档页数:4
微机原理及应用(陈继红、徐晨)课后习题答案第三章8086/8088指令系统和寻址方式习题答案(部分)3.1 总结计算机中十进制、二进制、八进制及十六进制数的书写形式。
123D、0AFH、77Q、1001110B分别表示什么计数制的数?答案:123D、0AFH、77Q、1001110B分别表示十进制、十六进制、八进制、二进制。
3.2字长为8位、16位二进制数的原码、补码表示的最大数和最小数分别是什么?答案:8位原码表示的最大数:(27-1)、8位补码表示的最大数:(27-1)、8位原码表示的最小数:-(27-1)、8位补码表示的最小数-27。
16位原码表示的最大数:(215-1)、16位补码表示的最大数:(215-1)、16位原码表示的最小数:-(215-1)、16位补码表示的最小数-215。
3.3 把下列十进制数分别转换为二进制数和十六进制数。
(1)125 (2)255 (3)72 (4)5090答案:(1) 125二进制数:0111 1101B;十六进制数:7DH。
(2)255二进制数:1111 1111B;十六进制数:0FFH。
(3)72二进制数:0100 1000B;十六进制数:48H。
(4)5090二进制数:0001 0011 1110 0010B;十六进制数:13E2H。
3.4 把下列无符号二进制数分别转换为十进制数和十六进制数。
(1)1111 0000 (2)1000 0000 (3)1111 1111 (4)0101 0101答案:(1)1111 0000十进制数:240D;十六进制数:0F0H。
(2)1000 0000十进制数:128D;十六进制数:80H。
(3)1111 1111十进制数:255D;十六进制数:0FFH。
(4)0101 0101十进制数:85D;十六进制数:55H。
3.5 把下列无符号十六进制数分别转换为十进制数和二进制数。
(1)FF (2)ABCD (3)123 (4)FFFF答案:(1)FF十进制数:255D;二进制数;1111 1111B。
微机原理课后习题参考答案第1部分微型计算机基础知识1.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】微处理器:指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上,这种具有中央处理器功能的大规模集成电路器件,被统称为“微处理器”。
微型计算机:简称“微型机”、“微机”,也称“微电脑”。
由大规模集成电路组成的、体积较小的电子计算机。
由微处理机(核心)、存储片、输入和输出片、系统总线等组成。
特点是体积小、灵活性大、价格便宜、使用方便。
微型计算机系统:简称“微机系统”。
由微型计算机、显示器、输入输出设备、电源及控制面板等组成的计算机系统。
配有操作系统、高级语言和多种工具性软件等。
1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU在内部结构上由运算器、控制器、寄存器阵列和内部总线等各部分构成,其主要功能是完成各种算数及逻辑运算,并实现对整个微型计算机控制,为此,其内部又必须具备传递和暂存数据的功能。
1.3 微型计算机采用总线结构有什么优点?【解】①简化了系统结构,便于系统设计制造;②大大减少了连线数目,便于布线,减小体积,提高系统的可靠性;③便于接口设计,所有与总线连接的设备均采用类似的接口;④便于系统的扩充、更新与灵活配置,易于实现系统的模块化;⑤便于设备的软件设计,所有接口的软件就是对不同的口地址进行操作;⑥便于故障诊断和维修,同时也降低了成本。
总线的逻辑电路有些是三态的,即输出电平有三种状态:逻辑“0”,逻辑“1”和“高阻”态。
1.4计算机总线有哪些,分别是什么?【解】总线按其信号线上传输的信息性质可分为三组:①数据总线,一般情况下是双向总线;②地址总线,单向总线,是微处理器或其他主设备发出的地址信号线;③ 控制总线,微处理器与存储器或接口等之间1.5 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线(DB)为双向结构,数据在CPU与存储器或I/O 接口之间的传送是双向的,(数据既可以读也可以写),其宽度通常与微处理器的字长相同。
第二章答案Tarzan 版题2.1 8086/8088通用寄存器的通用性表现在何处?8个通用寄存器各自有何专门用途?哪些寄存器可作为存储器寻址方式的指针寄存器?答:8086/8088通用寄存器的通用性表现在:这些寄存器除了各自规定的专门用途外,他们均可以用于传送和暂存数据,可以保存算术逻辑运算中的操作数和运算结果;8个通用寄存器的专门用途如下:AX 字乘法,字除法,字I/OBX 存储器指针CX 串操作或循环控制中的计数器DX 字乘法,字除法,间接I/OSI 存储器指针(串操作中的源指针)DI 存储器指针(串操作中的目的指针)BP 存储器指针(存取堆栈的指针)SP 堆栈指针其中BX,SI,DI,BP可作为存储器寻址方式的指针寄存器题2.2 从程序员的角度看,8086/8088有多少个可访问的16位寄存器?有多少个可访问的8位寄存器?答:从程序员的角度看,8086/8088有14个可访问的16位寄存器;有8个可访问的8位寄存器;题2.3 寄存器AX与寄存器AH和AL的关系如何?请写出如下程序片段中每条指令执行后寄存器AX的内容:MOV AX,1234HMOV AL,98HMOV AH,76HADD AL,81HSUB AL,35HADD AL,AHADC AH,ALADD AX,0D2HSUB AX,0FFH答: MOV AX,1234H AX=1234HMOV AL,98H AX=1298HMOV AH,76H AX=7698HADD AL,81H AX=7619HSUB AL,35H AX=76E4HADD AL,AH AX=765AHADC AH,AL AX=D15AHADD AX,0D2H AX=D22CHSUB AX,0FFH AX=D12DH题2.4 8086/8088标志寄存器中定义了哪些标志?这些标志可分为哪两类?如何改变这些标志的状态?答: 8086/8088标志寄存器中定义了9个标志,如下:CF: Carry FlagZF: Zero FlagSF: Sign FlagOF: Overflow FlagPF: Parity FlagAF: Auxiliary Carry FlagDF: Direction FlagIF: Interrupt-enable FlagTF: Trap Flag这些标志可分为两类,分别为:1、运算结果标志;2、状态控制标志;采用指令SAHF可把AH中的指定位送至标志寄存器低8位SF、ZF、AF、PF、CF;采用CLC可清除CF,置CF到0采用STC可置CF到1采用CLD可置DF到0采用sTD可置DF到1采用CLI可置IF到0采用STI可置IF到1另外,在某些指令执行过程中会改变部分标志的状态;题2.5 请说说标志CF和标志OF的差异。
微机课后习题答案第一章:1.1 IA- 32结构微处理器直至Pentium4,有哪几种?8086. 80286.80386.80486.Pentium.Pentium MMX. Pentium Pro. Pentium Ⅱ. Pentium Ⅲ1.2 80386和8086在功能上有哪些区别?(1)从16位扩展为32位(2)从保护模式到实模式(3)片内存储管理单元1.3 80486和80386在功能上有哪些区别浮点支持1.4 Pentium相对于80486在功能上有什么扩展?(1)页从4KB扩展到4MB(2)内部寄存器仍是32位,但为了加快数据传送,内部数据总线是128和256位,外部数据总线是64位(3)增加了可编程中断控制器,以支持多个奔腾处理器系统(4)Pentium MMX引入了多媒体扩展指令集技术(MMX)1.5 Pentium Ⅱ以上的处理器采用了什么结构。
P6系列的超标量微结构。
1.6徽处理器、微型计算机和微型计算机系统三者之间有什么不同?微处理器:将cpu集成在一块集成电路芯片上。
微型计算机:由微处理器,存储器,输入输出接口电路和输入输出设备组成。
微型计算机系统:由微型计算机与运行、管理、维护计算机的软件组成。
1.7 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?组成:内部寄存器阵列,累加器和算术逻辑单元,指令寄存器,指令译码器和控制信号的产生电路。
功能:进行算术逻辑运算,控制计算机按照程序的规定运行。
1.8 微型计算机采用总线结构的优点。
增加了数据传送了灵活性,减少了芯片之间的连线,因而减少了连线所占的面积。
且总线可以标准化,有利于工业生产和兼容。
1.9数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?区别:数据总线是双向的,地址总线是单向的。
区分:地址总线和数据总线是分时复用的,它们主要靠信号的时序来区分,通常在读写数据时,先发送地址,然后再将数据送到数据总线上。
8086中的七种寻址⽅式寻址⽅式8086/8088有七种基本的寻址⽅式:⽴即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
其中,后五种寻址⽅式(即直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址)属于存储器寻址,⽤于说明操作数或操作数地址所在存储单元的地址。
这五种⽅式也就是确定存放操作数的存储单元有效地址EA的⽅法,这⾥所说的有效地址就是在前⾯⼀节讲存储器分段中所说的段内偏移地址。
除了这些基本的寻址⽅式以外,还有固定寻址和I/O端⼝寻址等,但不会在本节中介绍到。
基本寻址⽅式下⾯重点说⼀下这七种基本寻址⽅式的特点:1. ⽴即寻址⽅式先解释⼀个概念,叫做⽴即数。
操作数包含在指令中,它作为指令的⼀部分,跟在操作码后存放在代码段。
这种操作数称为⽴即数。
⽴即寻址⽅式所提供的操作数紧跟在操作码后⾯,与操作码⼀起放在指令代码段中,不需要到其他地址单元中去取。
⽴即数可以是8位,也可以是16位。
这种寻址⽅式主要⽤于给寄存器或存储单元赋初值的场合。
⽴即寻址⽅式是这七种寻址⽅式中速度最快的寻址⽅式。
举例:MOV AX, 1234H ; 给AX寄存器赋值为1234H2. 寄存器寻址⽅式寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。
对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI和SP等;对于8位操作数,寄存器可以是AL、AH、BL、BH、CL、CH、DL和DH。
例如:MOV SI, AXMOV AL, DH由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采⽤寄存器寻址⽅式的指令执⾏速度较快。
3. 直接寻址⽅式直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。
由于操作数⼀般存放在数据段,所以操作数的地址由DS加上指令中给出的16位偏移得到。
假如DS内容是5000H,地址为51234H字存储单元中的内容时6789H,那么在执⾏“MOV AX, [1234H]”后寄存器AX的内容是6789H。
寻址⽅式和指令系统《微机原理》复习思考题第3章 8086的寻址⽅式和指令系统3.1 8086汇编语⾔指令的寻址⽅式有哪⼏类?⽤哪⼀种寻址⽅式的指令执⾏速度最快?3.2 直接寻址⽅式中,⼀般只指出操作数的偏移地址,那么,段地址如何确定?如果要⽤某个段寄存器指出段地址,指令中应如何表⽰?3.3 在寄存器间接寻址⽅式中,如果指令中没有具体指明段寄存器,那么,段地址如何确定?3.4 ⽤寄存器间接寻址⽅式时,BX,BP,SI,DI分别针对什么情况来使⽤?这四个寄存器组合间接寻址时,地址是怎样计算的?举例进⾏说明。
3.5 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下⾯两条指令所进⾏的具体操作:MOV BYTE PTR [BP], 2000MOV WORD PTR [BX], 20003.6 使⽤堆栈操作指令时要注意什么问题?传送指令和交换指令在涉及内容操作数时分别要注意什么问题?3.7 下⾯这些指令中哪些是正确的?哪些是错误的?如果是错误的,请说明原因。
XCHG CS, AXMOV [BX], [1000]XCHG BX, IPPUSH CSPOP CSIN BX, DXMOV BYTE[BX], 1000MOV CS, [1000]3.8 8086系统中,当对SS和SP寄存器的值进⾏修改时,有什么特殊规定?这样做的原因是什么?[解答] 凡是遇到给SS寄存器赋值的传送指令时,系统会⾃动禁⽌外部中断,等到本条指令和下条指令执⾏之后,⼜⾃动恢复对SS寄存器赋值前的中断开放情况。
这样做是为了允许程序员连续⽤两条指令分别对SS和SP寄存器赋值,同时⼜防⽌堆栈空间变动过程中出现中断。
3.9 以下是格雷码的编码表0——0000 1——0001 2——0011 3——0010 4——01105——0111 6——0101 7——0100 8——1100 9——1101请⽤换码指令和其他指令设计⼀个程序段,实现格雷码往ASCII的转换。
1. 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?
寄存器寻址最快
7. 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。
XCHG CS , AX ;不能修改CS
MOV [BX] , [1000] ;不能在两个内存单元之间直接进行数据传送
XCHG BX , IP ;不能用名字直接访问IP
PUSH CS
POP CS ;不允许直接修改CS值
IN BX , DX ;输入数据必须使用累加器AL或AX
MOV BYTE [BX] , 1000 ;格式错误,且超范围,应为MOV word PTR [BX],1000
MOV CS , [1000];不允许直接修改CS值
20.带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0006后,SP的值为多少?
利用堆栈传递参数时使用;对于近调用SP=3008H,对于远调用SP=300AH
27.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行
PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么?
栈顶地址:SS:SP,物理地址为:2FF00H;PUSH 完以后栈顶地址为:SS:SP=2010:FDFEH,即物理地址为:2FEFEH,内容为:57H 34H(由低地址到高地址)
B P7
5. 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(S1)=0002H,(31100H)=52H,
(31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H,
(32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容:
(1) MOV AX,BX (2) MOV AX,[BX]
(3) MOV AX,4200H (4) MOV AX,[2800H]
(5) MOV AX,1100H[BX] (6) MOV AX,[1160H+SI]
9. 分别执行下列各指令组,写出AX的内容:
(1) MOV AX,93A4H
NEG AX
73A4-8c5c,e689-1977
(AX)=6C5CH
(2) XY DW "AB"
MOV AX,XY
(AX)=4142H
(3) MOV AX,2B7EH
MOV CX,4DB5H
ADD AX,CX
(AX)=7933H
(4) XA DW 0BD57H
MOV AX,0FBCDH
AND AX,XA
(AX)=B945H
(5) STC
MOV BX, 0B69FH
MOV AX, 43A2H
SBB AX, BX
(6) MOV AX, 3537H
MOV BL, 39H
ADD AL, BL
AAA
(AX)=3606H
(7)XY DB "AB"
MOV AX, WORD PTR XY
(AX)=4241H
10. 找出下列指令中所有对的指令,写出题号,错误的请说明原因。
(1) MOV DS,2010H (2) PUSH AL
(3) MOV DX,[SP] (4) IN AL,0A00H
(5)XCHG CL,CH (6) SHR AX,3
(7) AAA CX (8) ADD [EBP+DI],[1000H] (9) OUT DX,CL (11) ADD 03ECH,AX
(12) MOV BX,[SI+DI] (14) LDS CH,[DI]
(15) LEA BX,1000H (16) DIV 0010H
(18) MUL AX,200H (19) MOV AX,[BX+BP] (20) CMP [BX],[SI] (21) MUL 24h
(22) OUT DX,BX (23) AND 0FH,AL
(24) SAL [BX],CX (25) MOVS
(26) JMP FAR [BX+SI] (27) JNZ AAA
(29) SBC AX,[DX]
17.读程序段,回答问题。
(1) IN AL,82H (2)IN AL,82H
XOR AH,AH MOV BL,0AH
ADD AX,AX IMUL BL
MOV BX,AX
MOV CX,2
SHL BX,CL
ADD AX,BX
问:1.程序段(1)的功能是什么?
将82H端口输入的字节乘以10后放在ax中
2.若从82H端口读人的数据为05H,完成程序段(1)后(AX)=?
(ax)=0032H
3.若读入的字节为A5H,完成程序段(1)后,(AX)=?
(ax)=0672h
又问程序段(1)与程序段(2)的功能是否相同(忽略BX的变化)?
不相同,(1)做的时无符号数的乘法,而(2)做的是符号数的乘法
4.用最简单的指令完成与(1)相同的功能,请写出这些指令。
IN AL,82H
MOV BL,10
MUL BL
25.比较AX,BX,CX中有符号数的大小,将最大的数放在AX中,请编程。
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AX,1243H
MOV BX,892AH
MOV CX,9922H
CMP AX,BX
JGE NEXT
XCHG AX,BX
NEXT: CMP AX,CX
JGE NEXT2
XCHG AX,CX
NEXT2:MOV AH,4CH
INT 21H
CODE ENDS
END START
附加:用汇编编程在屏幕上显示字符串“Hello world!”.
参考程序:
DATA SEGMENT
PROMPT DB 'Hello world!',0DH,0AH,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA DX,PROMPT
MOV AH,09H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
1.读程序,并标明内存中数据段的相关地址和内容。
(7)DATA SEGMENT
BUFFER DB 3 DUP (0)
A D
B 41H
LA EQU $
B DW 'AB'
LB EQU $
BYTEB EQU BYTE PTR B
C D
D 41424344H
LC EQU $
WORDC EQU WORD PTR C
DATA ENDS CODE SEGMENT
ASSUME DS:DATA, ES:DATA, CS:CODE
START
PROC FAR
MOV AX ,DATA
MOV DS , AX
MOV ES ,AX LEA SI ,BUFFER MOV [ SI ],BYTEB INC SI
MOV [ SI ],WORDC ADD LA[ SI ],LB ADD LB[ SI ],LC MOV
AH ,4CH
INT 21H
START ENDP CODE
ENDS
END
START
内 存 初 始 状 态
内 存 最 终 状 态
题五(1)图。