《微机原理》答疑题库
1. 求–75D 的二进制和16进制单字节补码及双字节补码表示
解:+75D二进制补码=01001011B
将01001011各位取反, 得10110100B, 末位加1得10110101B
所以-75D 单字节补码=10110101B=0B5H
其双字节补码可由将单字节补码的最高位扩展到高字节得到.
即-75D 双字节补码=[**************]1B=0FFB5H
(注意, 对于16进制数,若第一个数字是字母A —F ,则应在前面加上0)
2.求补码0A5H 的真值。
解:0A5H=10100101B各位取反, 得01011010B 末位加1得01011011B=91D 所以,0A5H 的真值为十进制的-91
(注意, 正数与负数是互补的关系)
3. 8088和8086的比较
1.外部数据总线位数的差别:8086CPU 的外部数据总线有16位,在一个总线周期内可输入/输出一个字(16位数据) ,使系统处理数据和对中断响应的速度得以加快; 而8088 CPU的外部数据总线为8位,在一个总线周期内只能输入/输出一个字节(8位数据) 。也正因为如此,8088被称为准16位处理器。
2.指令队列容量的差别: 8086CPU 的指令队列可容纳6个字节,且在每个总
线周期中从存储器中取出2个字节的指令代码填入指令队列,这可提高取指操作和其它操作的并行率,从而提高系统工作速度;而8088CPU 的指令队列只能容纳 4个字节,且在每个总线周期中只能取一个字节的指令代码,从而增长了总线取指令的时间,在一定条件下可能影响取指令操作和其它操作的并行率。
3.引脚特性的差别:两种CPU 的引脚功能是相同的,但有以下几点不同:
(1) AD15~AD0的定义不同:在8086中都定义为地址/数据复用总线;而在 8088中,由于只需用8条数据总线,因此,对应予8086的AD15~AD8这8条引脚,只作地址线使用。
(2)34号引脚的定义不同:在8086中定义为BHE 信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。
(3)28号引脚的相位不同: 在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。
4. 最小方式下, 8086的24~31脚的控制线功能及含义。
答: (1)M/IO(Memory/Input and Output,输出,三态)
存储器/输入输出控制信号:用于区分是访问存储器还是访问IO ,被接至存储器芯片或接口芯片的片选端。若为高电平,表示CPU 和存储器之间进行数据传输;若为低电平,表示 CPU 和输入/输出设备之间进行数据传输。当DMA 时,此线被置为浮空。
(2)WR(WRite,输出,低电平有效,三态) 写控制信号
是CPU 用来表示在进行对存储器或是对I /O 进行写操作。在任何写周期,WR 只在T2,T3和Tw 有效,在DMA 时,此线被置为浮空。
(5)INTA(INterrupt Acknowledge,输出,低电平有效) 中断响应信号
是在中断响应周期中由 CPU 对外设中断请求作出的响应。对8086, INTA 信号实际上是位于连续两个总线周期中的两个负脉冲(见图2-24) ,在每个总线周期的T2,T3和Tw 状态下,INTA 端为低电平。第一个负脉冲通知外设的接口,它发出的中断请求已经得到允许;第二个负脉冲期间,由外设接口往数据总线上放中断类型码,使CPU 得到有关该中断请求的详尽信息。
(6)ALE( Address Latch Enable,输出,高电平有效) ,地址锁存允许信 是CPU 在每个总线周期的T1状态发出的,作为地址锁存器(例如8282/8283) 的地址锁存信号。
5. 无符号数和带符号数的特点。
答: 1) 用CF 可检测无符号数是否溢出,用OF 可检测带符号数是否溢出;
2) 无符号数运算结果溢出是在超出了最大的表示范围这唯一的原因下发生的,溢出也就是产生进位,这不能叫出错。因此,在多字节数的相加过程中,正是利用溢出的CF 来传递低位字节向高位字节的进位;而带符号数运算产生溢出就不同了,它是由Cs 和C 。两种综合因素表示的,一当发生溢出,就表示运算结果出错。
这种情况的出现在于,在CPU 内部,有符号数依然是作为无符号数来运算的,即符号位也是要参与运算的,所以会出错。
算术运算指令涉及的操作数从表示的进制来讲,可以是二、十六进制数,也可以是BCD 码表示的十进制数,因一位BCD 码用4位二进位表示,因此操作数为BCD 十进制数时,是不带符号的十进制数。十进制数运算所得结果,应加
校正指令进行调整,8086专门设有对BCD 码运算结果进行调整的各种指令。 8086算术运算指令可用的BCD 码有两种;一种叫组合的BCD 码(Packed BCD) ,即l 个字节表示2位BCD 码;另一类叫非组合的BCD 码(UnPacked BCD),用这类代码时,1个字节只用低4位来表示l 位BCD 码,高4位为0(无意义) 。 算术运算指令的特点有:
1) 在加、减、乘、除基本运算指令中,除±1指令外,都具有两个操作数;
2) 这类指令执行后,除±1指令不影响CF 标志外,对CF ,OF ,ZF ,SF ,PF 和AF 等6位标志均可产生影响,由这6位状态标志反映的操作结果的性质如下: ①当无符号数运算产生溢出时,CF=l;
②当带符号数运算产生溢出时,OF=1;
③当运算结果为零,ZF=l;
④当运算结果为负,SF=1;
⑤当运算结果中有偶数个1,PF=1;
⑥当操作数为BCD 码,半字节间出现进位,需要进行BCD 码调整,AF=1。
1、8086/8088系统中,下列指令不正确的是( C )。
A MOV AX ,38 B MOV SP ,38
C MOV DS ,38 D MOV AL ,38
2、下列指令中错误的是( A )。
A PUSH AH B MOV AX ,BX
C CMP AX ,[BX][SI] D ADD AX ,BX
3、将寄存器AX 的内容求反的正确操作是( C )。
A NEG AX B XOR AX ,0FFFFH
C NOT AX D CMP AX ,AX
4、在对I/O寻址方式中,当端口地址大于255时,须事先将端口地址存放在DX 中(是)
四、简答题 (共20分)
1、简述查表指令(换码指令)XLAT 的功能(4分)。
用AL 寄存器作为表的索引,定位在内存中的字节项。然后把它送至AL 。在AL 寄存器中的索引当作无符号数对待。
2、数据总线和地址总线在结构上有什么不同之处? 如果一个系统的数据和地址合用一套总线或者合用部分总线, 那么要靠什么来区分地址和数据? (5分) 数据线是双向的,地址线是单向的,用时间来区分
3.8086CPU 在响应中断时,执行两个中断响应周期。 (√ )
4. 所谓“端口”是指一些可以由 CPU 读或写的 (C )
A.RAM B.ROM C. 寄存器 D. 缓冲器
四、名词解释 ( 每小题 2 分,共 10 分 )
1. 微处理器
指由一片或几片大规模集成电路组成的中央处理器。
2. 微型计算机
以微处理器、内存储器及 I/O 接口等组成的裸机
3. 微型计算机系统
由微型计算机及相应的外围设备和软件系统组成
4. 微控制器是指 ( B )
A.微处理器 B. 微型计算机 C.单板机 D. 单片机
5.8086通用寄存器各有不同的特殊功能,其中DX 寄存器的特定用法是(C )
A. 间接寻址中作变址寄存器B. 在循环指令中作循环计数寄存器
2,堆栈的深度由哪个寄存器决定?为什么说一个堆栈的最大深度为64KB ?在执行一条入栈和出栈指令时,栈顶地址将如何变化?
答:由SP 来决定。因为SP 是16位寄存器,最大寻址空间为64KB 。当执行PUSH 指令时,栈顶地址减2,指向新的栈顶。执行POP 指令时,栈顶地址加2,再指向新的栈顶。
3,CPU 玉外设的数据传送的5种方式分别是什么?
答:1)无条件传送。2)程序查询方式。3),中断方式。4)直接存储器(DMA )访问方式。5)通道方式。
4,向量中断与中断向量有何区别?中断向量玉中断入口地址又有和区别?答:
(1)向量中断是通过中断中向量来找中断入口地址进而转到中断服务程序的一种方法;中断向量是用来提供中断入口地址的一个地址指针。(2)中断入口地址是指中断服务程序的实际地址,即段地址左移4位加偏移所得和。
四,回答题:
1,指出下列指令不合法的原因。
1)MOV 【SI 】,IP (指令指针IP 不能传送)。
2)MOV CX,AX (传送类型不匹配)。
3)MOV BL,SI+2(目的操作数不能为立即数)。
4)PUSH 2400H(操作数类型不明确,应加伪指令明确操作数类型)。
5)MUL —60H (乘数不能为立即数)。
6)ADD 【2400H 】,2AH (类型不匹配)。
1、8086系统中,地址FFFF0H 是_CPU复位以后执行第一条指令的地址 地址; 2、8251芯片中设立了_奇/偶错__、_帧格式错__ 和_溢出错_____三种出错标志; 3、8259A 共有___个可编程的寄存器,它们分别用于接受CPU 送来的__初始化____命令字和___操作_____命令字。
二、简答题:(20分)
1、什么是信号的调制与解调?为什么要进行调制和解调?试举出一种调制的方式。(5分)
串行长距离通信时,需要利用模拟信道来传输数字信号,由于信道的频带窄,一般为300~3400HZ,而数字信号的频带相当宽,故传输时必须进行调制,以免发生畸变而导致传输出错。(3分)
调制是将数字信号模拟信号。而解调则是相反。
2、已有MOV AL ,INF[BP+SI]与MOV AL ,ES :INF[BP+SI]两条指令,试问:其源操作数采用何种寻址方式?是字或是字节操作?两条指令有何区别?(5分) 源操作采用基址+变址寻址方式 (2分) 是 字节操作 (1分)
MOV AL,INF[BP+SI]—访问的是堆栈段 (1分)
MOV AL,ES :INF[BP+SI]—访问的是附加段,实现了段超越 (1分)
3、已知某8255A 在系统中占用88~8BH号端口地址,现欲安排其PA ,PB ,PC 口全部为输出,PA ,PB 口均工作于方式0模式,并将PC6置位,使PC3复位,试编写出相应的初始化程序:(6分)
MOV AL , 80H
OUT 8BH ,AL (2分)
MOV AL ,ODH
OUT 8BH ,AL (2分)
MOV AL ,06H
OUT 8BH ,AL (2分)
2、8086CPU 的FLAG 寄存器中,状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?
2、状态标志表示算术运算或逻辑运算执行之后,运算结果的状态,这种状态将作为一种条件,影响后面的操作。
控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置或清除,每个控制标志都对某一特定的功能起控制作用.
《微机原理》答疑题库
1. 求–75D 的二进制和16进制单字节补码及双字节补码表示
解:+75D二进制补码=01001011B
将01001011各位取反, 得10110100B, 末位加1得10110101B
所以-75D 单字节补码=10110101B=0B5H
其双字节补码可由将单字节补码的最高位扩展到高字节得到.
即-75D 双字节补码=[**************]1B=0FFB5H
(注意, 对于16进制数,若第一个数字是字母A —F ,则应在前面加上0)
2.求补码0A5H 的真值。
解:0A5H=10100101B各位取反, 得01011010B 末位加1得01011011B=91D 所以,0A5H 的真值为十进制的-91
(注意, 正数与负数是互补的关系)
3. 8088和8086的比较
1.外部数据总线位数的差别:8086CPU 的外部数据总线有16位,在一个总线周期内可输入/输出一个字(16位数据) ,使系统处理数据和对中断响应的速度得以加快; 而8088 CPU的外部数据总线为8位,在一个总线周期内只能输入/输出一个字节(8位数据) 。也正因为如此,8088被称为准16位处理器。
2.指令队列容量的差别: 8086CPU 的指令队列可容纳6个字节,且在每个总
线周期中从存储器中取出2个字节的指令代码填入指令队列,这可提高取指操作和其它操作的并行率,从而提高系统工作速度;而8088CPU 的指令队列只能容纳 4个字节,且在每个总线周期中只能取一个字节的指令代码,从而增长了总线取指令的时间,在一定条件下可能影响取指令操作和其它操作的并行率。
3.引脚特性的差别:两种CPU 的引脚功能是相同的,但有以下几点不同:
(1) AD15~AD0的定义不同:在8086中都定义为地址/数据复用总线;而在 8088中,由于只需用8条数据总线,因此,对应予8086的AD15~AD8这8条引脚,只作地址线使用。
(2)34号引脚的定义不同:在8086中定义为BHE 信号;而在8088中定义为SS0,它与DT/R,IO/M一起用作最小方式下的周期状态信号。
(3)28号引脚的相位不同: 在8086中为M/IO;而在8088中被倒相,改为IO/M,以便与8080/8085系统的总线结构兼容。
4. 最小方式下, 8086的24~31脚的控制线功能及含义。
答: (1)M/IO(Memory/Input and Output,输出,三态)
存储器/输入输出控制信号:用于区分是访问存储器还是访问IO ,被接至存储器芯片或接口芯片的片选端。若为高电平,表示CPU 和存储器之间进行数据传输;若为低电平,表示 CPU 和输入/输出设备之间进行数据传输。当DMA 时,此线被置为浮空。
(2)WR(WRite,输出,低电平有效,三态) 写控制信号
是CPU 用来表示在进行对存储器或是对I /O 进行写操作。在任何写周期,WR 只在T2,T3和Tw 有效,在DMA 时,此线被置为浮空。
(5)INTA(INterrupt Acknowledge,输出,低电平有效) 中断响应信号
是在中断响应周期中由 CPU 对外设中断请求作出的响应。对8086, INTA 信号实际上是位于连续两个总线周期中的两个负脉冲(见图2-24) ,在每个总线周期的T2,T3和Tw 状态下,INTA 端为低电平。第一个负脉冲通知外设的接口,它发出的中断请求已经得到允许;第二个负脉冲期间,由外设接口往数据总线上放中断类型码,使CPU 得到有关该中断请求的详尽信息。
(6)ALE( Address Latch Enable,输出,高电平有效) ,地址锁存允许信 是CPU 在每个总线周期的T1状态发出的,作为地址锁存器(例如8282/8283) 的地址锁存信号。
5. 无符号数和带符号数的特点。
答: 1) 用CF 可检测无符号数是否溢出,用OF 可检测带符号数是否溢出;
2) 无符号数运算结果溢出是在超出了最大的表示范围这唯一的原因下发生的,溢出也就是产生进位,这不能叫出错。因此,在多字节数的相加过程中,正是利用溢出的CF 来传递低位字节向高位字节的进位;而带符号数运算产生溢出就不同了,它是由Cs 和C 。两种综合因素表示的,一当发生溢出,就表示运算结果出错。
这种情况的出现在于,在CPU 内部,有符号数依然是作为无符号数来运算的,即符号位也是要参与运算的,所以会出错。
算术运算指令涉及的操作数从表示的进制来讲,可以是二、十六进制数,也可以是BCD 码表示的十进制数,因一位BCD 码用4位二进位表示,因此操作数为BCD 十进制数时,是不带符号的十进制数。十进制数运算所得结果,应加
校正指令进行调整,8086专门设有对BCD 码运算结果进行调整的各种指令。 8086算术运算指令可用的BCD 码有两种;一种叫组合的BCD 码(Packed BCD) ,即l 个字节表示2位BCD 码;另一类叫非组合的BCD 码(UnPacked BCD),用这类代码时,1个字节只用低4位来表示l 位BCD 码,高4位为0(无意义) 。 算术运算指令的特点有:
1) 在加、减、乘、除基本运算指令中,除±1指令外,都具有两个操作数;
2) 这类指令执行后,除±1指令不影响CF 标志外,对CF ,OF ,ZF ,SF ,PF 和AF 等6位标志均可产生影响,由这6位状态标志反映的操作结果的性质如下: ①当无符号数运算产生溢出时,CF=l;
②当带符号数运算产生溢出时,OF=1;
③当运算结果为零,ZF=l;
④当运算结果为负,SF=1;
⑤当运算结果中有偶数个1,PF=1;
⑥当操作数为BCD 码,半字节间出现进位,需要进行BCD 码调整,AF=1。
1、8086/8088系统中,下列指令不正确的是( C )。
A MOV AX ,38 B MOV SP ,38
C MOV DS ,38 D MOV AL ,38
2、下列指令中错误的是( A )。
A PUSH AH B MOV AX ,BX
C CMP AX ,[BX][SI] D ADD AX ,BX
3、将寄存器AX 的内容求反的正确操作是( C )。
A NEG AX B XOR AX ,0FFFFH
C NOT AX D CMP AX ,AX
4、在对I/O寻址方式中,当端口地址大于255时,须事先将端口地址存放在DX 中(是)
四、简答题 (共20分)
1、简述查表指令(换码指令)XLAT 的功能(4分)。
用AL 寄存器作为表的索引,定位在内存中的字节项。然后把它送至AL 。在AL 寄存器中的索引当作无符号数对待。
2、数据总线和地址总线在结构上有什么不同之处? 如果一个系统的数据和地址合用一套总线或者合用部分总线, 那么要靠什么来区分地址和数据? (5分) 数据线是双向的,地址线是单向的,用时间来区分
3.8086CPU 在响应中断时,执行两个中断响应周期。 (√ )
4. 所谓“端口”是指一些可以由 CPU 读或写的 (C )
A.RAM B.ROM C. 寄存器 D. 缓冲器
四、名词解释 ( 每小题 2 分,共 10 分 )
1. 微处理器
指由一片或几片大规模集成电路组成的中央处理器。
2. 微型计算机
以微处理器、内存储器及 I/O 接口等组成的裸机
3. 微型计算机系统
由微型计算机及相应的外围设备和软件系统组成
4. 微控制器是指 ( B )
A.微处理器 B. 微型计算机 C.单板机 D. 单片机
5.8086通用寄存器各有不同的特殊功能,其中DX 寄存器的特定用法是(C )
A. 间接寻址中作变址寄存器B. 在循环指令中作循环计数寄存器
2,堆栈的深度由哪个寄存器决定?为什么说一个堆栈的最大深度为64KB ?在执行一条入栈和出栈指令时,栈顶地址将如何变化?
答:由SP 来决定。因为SP 是16位寄存器,最大寻址空间为64KB 。当执行PUSH 指令时,栈顶地址减2,指向新的栈顶。执行POP 指令时,栈顶地址加2,再指向新的栈顶。
3,CPU 玉外设的数据传送的5种方式分别是什么?
答:1)无条件传送。2)程序查询方式。3),中断方式。4)直接存储器(DMA )访问方式。5)通道方式。
4,向量中断与中断向量有何区别?中断向量玉中断入口地址又有和区别?答:
(1)向量中断是通过中断中向量来找中断入口地址进而转到中断服务程序的一种方法;中断向量是用来提供中断入口地址的一个地址指针。(2)中断入口地址是指中断服务程序的实际地址,即段地址左移4位加偏移所得和。
四,回答题:
1,指出下列指令不合法的原因。
1)MOV 【SI 】,IP (指令指针IP 不能传送)。
2)MOV CX,AX (传送类型不匹配)。
3)MOV BL,SI+2(目的操作数不能为立即数)。
4)PUSH 2400H(操作数类型不明确,应加伪指令明确操作数类型)。
5)MUL —60H (乘数不能为立即数)。
6)ADD 【2400H 】,2AH (类型不匹配)。
1、8086系统中,地址FFFF0H 是_CPU复位以后执行第一条指令的地址 地址; 2、8251芯片中设立了_奇/偶错__、_帧格式错__ 和_溢出错_____三种出错标志; 3、8259A 共有___个可编程的寄存器,它们分别用于接受CPU 送来的__初始化____命令字和___操作_____命令字。
二、简答题:(20分)
1、什么是信号的调制与解调?为什么要进行调制和解调?试举出一种调制的方式。(5分)
串行长距离通信时,需要利用模拟信道来传输数字信号,由于信道的频带窄,一般为300~3400HZ,而数字信号的频带相当宽,故传输时必须进行调制,以免发生畸变而导致传输出错。(3分)
调制是将数字信号模拟信号。而解调则是相反。
2、已有MOV AL ,INF[BP+SI]与MOV AL ,ES :INF[BP+SI]两条指令,试问:其源操作数采用何种寻址方式?是字或是字节操作?两条指令有何区别?(5分) 源操作采用基址+变址寻址方式 (2分) 是 字节操作 (1分)
MOV AL,INF[BP+SI]—访问的是堆栈段 (1分)
MOV AL,ES :INF[BP+SI]—访问的是附加段,实现了段超越 (1分)
3、已知某8255A 在系统中占用88~8BH号端口地址,现欲安排其PA ,PB ,PC 口全部为输出,PA ,PB 口均工作于方式0模式,并将PC6置位,使PC3复位,试编写出相应的初始化程序:(6分)
MOV AL , 80H
OUT 8BH ,AL (2分)
MOV AL ,ODH
OUT 8BH ,AL (2分)
MOV AL ,06H
OUT 8BH ,AL (2分)
2、8086CPU 的FLAG 寄存器中,状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?
2、状态标志表示算术运算或逻辑运算执行之后,运算结果的状态,这种状态将作为一种条件,影响后面的操作。
控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置或清除,每个控制标志都对某一特定的功能起控制作用.