计算机硬件基础
计划:把三套卷子里的每个题都搞懂,自己做一遍,然后对答案,最后记住答案
2020~2021第二学期卷子
我是否要反思一下平常日子的学习效率,这样是不是太慢了,自驱力太差了。以至于需要做很多的环境准备?明天能不能减少环境准备?首先认清自己的现状,然后想办法改变它。以前我只是觉得自己不好,或者是不能完美就什么都不想,或者是我一直在做错事,或者是莫名其妙的扣具和在意别人看着自己。在教室里有整个白天的话时间真的感觉不错。其实我就是需要环境准备->动机准备->实践进行->克服环境变化->适当休息->再度恢复做事这个过程。今天我总算能完整地过一个清醒的白天了,认为咖啡对此有巨大帮助。
选择填空
- B,hex像bcd一样每四位对应折算,8000H=1000 0000 0000 0000B,存在性一致,只取决于可取范围(二进制位数)
- A,cpu、memory、I/O、BUS组成基本结构
- B,我记得最早的int也是16位
- A, AL=30H-7FH发生了变号*(有待询问)
- B,AL=AL+BL,DAA据说用来对加法运算后的结果进行十进制调整。由于 ADD 指令执行后 AL 中的值已经是正确的十进制结果,所以执行 DAA 指令后 AL 中的值仍然是 5CH。
- A,目前世界上大部分计算机都使用补码来表示有符号整数。
- B,ASCII中零为30H(0011 0000B)
- D,字长(cpu)、运算速度(cpu)、存储容量(memory)是主要性能指标,对应基本结构部分,I/O,BUS没什么好改进的吧
- B,这个问题AI解释的很好:关于计算机和 I/O 接口电路,输入需要锁存,输出需要缓冲。这是因为输入设备可能会在任何时候改变它们的状态,所以需要锁存器来锁定输入设备当前的状态;而输出设备可能无法承受计算机直接输出的高速信号,所以需要缓冲器来缓冲输出信号。
- C,地址线一共16根,这就是8086的特性罢了,所以寻址=2^16=2^62^10=88k(1k=2^10)=64k
- A, ALE=address latch enable,地址 锁存 enable,latch就是罐子、水杯或者行李箱上那个用于锁定的机构,在数字电路里用于描述一种存储了1bit数据的电路结构(锁存器)=latch,我喜欢英文
- A, AI说明:“8086/8088 CPU 引脚 MN/~MX 接 +5V 时只允许系统中存在一个 CPU 。这是因为 MN/~MX 引脚用来选择最小模式或最大模式。当 MN/~MX 接 +5V 时,CPU 工作在最小模式下;当 MN/~MX 接地时,CPU 工作在最大模式下。在最小模式下,系统中只能存在一个 CPU ;而在最大模式下,则可以存在多个 CPU 。”,外设是可以有多个的。MN/
MX看来是min和max的缩写,两个是同一作用,高电平为1为生效 - D,8086/8088 CPU 基本总线周期由4个时钟周期组成。这是因为在每个总线周期中,CPU 都需要完成地址锁存(ALE)、地址输出(~M/IO||M/~IO)、数据读写(~RD(read),~WR(write))和数据锁存(DEN(Data enable))等操作,每个操作都需要一个时钟周期。Memory/Input and Output(~M/IO):访问存储器或I/O,高低电平都有效,用法见下)<--->
- C, INTR=interpret,为可屏蔽中断请求输入线。
- D,入口地址占两个字节
- A, 8253计数器是递减计数器,它从计数初值开始递减,当计数器递减到0时,定时时间结束。
- B, 异步传输时,如果一帧信息包括一位起始位、七位信息位、一位奇偶校验位和一位停止位,且波特率为 9600 bps,则每秒能传输 9600 / (1 + 7 + 1 + 1) = 960 个字符。
- B,ADC0809:逐次逼近型A/D转换器
- FFFF0, 8086/8088从FFFF0H(PA)(physical address)开始启动
- 010, 0(非(0)不能写),1(是(1)不能读),0(非(0)不能记), 8086/8088 CPU 在执行 OUT 80H, AL 指令时,~WR 等于0,~RD 等于1,IO/~M 等于0。这是因为 OUT 指令用来将数据从 AL 寄存器输出到 I/O 端口 80H。在执行该指令时,CPU 需要将 ~WR 置为0以启动写操作;将 ~RD 置为1以禁止读操作;将 IO/~M 置为1以选择 I/O 空间像这种端口的/两端是切换的意思,没有非号的在高电平有效,另一个在低电平有效,这个端口在8086、8088会有不同<--->。可见这些端口分别是缩写:WR=write,RD=read,M=memory
- 256k, 2^20/4=2^18=2^10*2^8=16^2k=256k
简答题
- x-y=-16,1000 0000 0001 0000B=8010H,
=1111 1111 1110 1111B=FFEFH,+1=FFF0H(32bits) - 程序查询方式、中断方式和 DMA 方式。程序查询方式是指 CPU 不断查询外设状态,以确定是否需要进行 I/O 传输;中断方式是指外设在需要进行 I/O 传输时向 CPU 发送中断请求INTR,由 CPU 中断当前程序执行 I/O 传输;DMA (direct memory access)( allows certain hardware subsystems to access main system memory independently of the central processing unit (CPU).)方式是指外设通过 DMA 控制器直接与内存进行数据交换,无需 CPU 干预。
- 在 8086 中,EU(Execution Unit)负责执行指令;BIU(Bus Interface Unit)负责与内存和 I/O 设备进行数据交换。EU 和 BIU 协同工作,通过总线交换数据和指令。
- ??? 在 8086 中,逻辑地址是由段寄存器和偏移寄存器组合而成的地址;偏移地址是指偏移寄存器中存储的地址;物理地址是指实际访问内存时使用的地址。逻辑地址、偏移地址和物理地址之间的关系为:物理地址 = 段地址 * 16 + 偏移地址。
- 寻址方式是指计算机如何根据指令中给定的信息来确定操作数地址的方法。存储器操作数是指存储在内存中的操作数。存储器操作数的寻址方式有多种,例如直接寻址、寄存器间接寻址、基址寻址、变址寻址等。
- 存储器系统中 RAM(Random Access Memory)是一种随机访问存储器;ROM(Read Only Memory)是一种只读存储器。RAM 和 ROM 的主要区别在于 RAM 能够读写,而 ROM 只能读不能写。
程序题
- 对,错
- JNZ NEXT;XOR AL, 0FH
- 80H,07FH
- 4,AX
- 4020H,64H,0007H,65H,20H,40H,36H
DATA SEGMENT
XX DB 34H
YY DB 78H
PDT DW ?
#1
SSEG SEGMENT STACK 'STACK'
DB 100DUP(?)
SSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,#2
START: MOV AX, DATA
MOV DS, AX
MOV DH, YY
XOR AH, AH
MOV AL, XX
#3
MOV CX, #4
NEXT: SHL BX, 1
TEST DH, #5
JZ L1
ADD BX, AX
L1: SHL DH, 1
LOOP NEXT
MOV PDT, #6
MOV AH, 4CH
INT #7
CODE ENDS
END #8
1.DATA ENDS(标准格式) 2.DS:DATA,SS:SSEG 3.XOR BX, BX 4.8(loop 的判断在于从CX中减一然后判断CX是否为0) 5.80H(按位与,结果放在ZF(zero_flag)中) 6.BX 7.21H(这就像是return 0一样的吧,INT 21H) 8.START(标明程序的开始)