1.微型计算机各部件之间是用(系统总线)连接起来的
2.冯诺依曼结构确定计算机的五个基本部件:i/o,存储器、控制器和(运算器)
微处理器通过(数据)总线 向存储器和io接口电路传输数据信号。
背上、(数据总线发信号)
3.计算机执行一条指令,(取操作数)不是必须的一个步骤
4.
千万别选成了ASCII码
4.
这题注意在将A5转化为二进制代码之后,发现最高位的数字是1,既然是求真值了,建议是此刻就将负号写上去,然后对剩下的7位进行转换即可。(防止忘了)
5.
这题设计到一个问题(本质上就是求80H的补码即可得到真值),ques:由真值得到反码之后+1得到1111 1111 + 1,如何处理???Ans见下:
所以本题就是得到 1(1000 0000),即符号位扩上去(原来符号位的位置的1仍然不变)—>相当于多一个1出来,最高位(进出来的)为此刻的符号位所以是负数,数值部分为2^7=128,综上所述:答案为-128
1、 问题:在一般的微处理器中,( )包含在CPU中。
选项:
A:内存
B:输入/输出端口
C:磁盘驱动器
D:算术逻辑单元
答案: 【算术逻辑单元 】
2、 问题:所谓微机的字长是指( )。
选项:
A:CPU内部数据总线的位数
B:CPU外部数据总线的位数
C:CPU地址总线的位数
D:CPU中运算器一次能处理二进制数的最大位数
答案: 【CPU中运算器一次能处理二进制数的最大位数】
3、 问题:80486CPU进行算术和逻辑运算时,可处理的信息的长度为( )。
选项:
A:32位
B:16位
C:8位
D:都可以
答案: 【都可以】
4、 问题:在下面关于微处理器的叙述中,错误的是( ) 。
选项:
A:微处理器是用超大规模集成电路制成的具有运算和控制功能的芯片
B:一台计算机的内部只含有1个处理器
C:CPU内部的寄存器由具有特殊用途的存储单元组成,是存储器系统的一部分
D:不同型号的CPU可能具有不同的机器指令
答案: 【一台计算机的内部只含有1个处理器】
5、 问题:若某台微型计算机的型号是奔四800,则其中800的含义是( )。
选项:
A:CPU中有800个寄存器
B:CPU中有800个运算器
C:时钟频率为800MHZ
D:该微机的内存为800MB
答案: 【时钟频率为800MHZ】
6、 问题:程序设计中所使用的地址是( )。
选项:
A:逻辑地址
B:有效地址
C:物理地址
D:段基址
答案: 【逻辑地址】
7、 问题:控制器的功能是( )。
选项:
A:产生时序信号
B:从主存取出指令并完成指令操作码译码
C:从主存取出指令、分析指令并产生有关的操作控制信号
D:完成算术和逻辑运算
答案: 【从主存取出指令、分析指令并产生有关的操作控制信号】
8、 问题:运算器的主要功能是( ) 。
选项:
A:算术运算
B:算术运算与逻辑运算
C:逻辑运算
D:函数运算
答案: 【算术运算与逻辑运算】
9、 问题:编程人员不能随意读写的寄存器是( )。
选项:
A:DI
B:CX
C:IP
D:SP
答案: 【IP】
10、 问题:80X86微处理器中的 BX是( )。
选项:
A:基址寄存器
B:计数寄存器
C:变址寄存器
D:基数寄存器
答案: 【基址寄存器 】
15、 问题:486工作在实地址模式下时,能访问的物理内存空间是( )
选项:
A:1M
B:16M
C:20M
D:64K
答案: 【1M】
20、 问题:80486的数据总线都是16位。
选项:
A:正确
B:错误
答案: 【错误】
21、 问题:SP做堆栈指针时,其内容必须指向堆栈栈顶。
选项:
A:正确
B:错误
答案: 【正确】
22、 问题:字长是描述CPU数据总线宽度的指标。
选项:
A:正确
B:错误
答案: 【错误】
解释:字长描述CPU能够一次处理的二进制数字的位数。数据总线宽度是描述CPU与内存或其他设备之间传输数据的宽度。虽然字长和数据总线宽度可能相关,但它们并不是完全相同的概念。
25、 问题:在80486的32位标志寄存器中,其每一位都有一定的含义。
选项:
A:正确
B:错误
答案: 【错误】
分析;【32位长度的标志寄存器中,有定义的是若干位,不是全部位都有定义。】
26、 问题:微机的字长愈长,计算精度愈高,指令处理功能愈强。
选项:
A:正确
B:错误
答案: 【正确】
30、 问题:16位微处理器的内部结总线接口单元BIU由段寄存器(CS、DS、SS、ES)、指令指针寄存器(IP)、内部暂存器、指令队列、地址加法器及总线控制电路组成。
选项:
A:正确
B:错误
答案: 【正确】
31、 问题:80X86工作在实模式下时,每个物理存储单元对应唯一的物理地址,其范围是0 ~ ( )H。
答案: 【FFFFF】
32、 问题:指令指针用IP表示,其中存放的是CPU所要访问的内存单元的( )。
答案: 【偏移地址;有效地址】
33、 问题:8086CPU具有20条地址线,可直接寻址( )B容量的内存空间。
答案: 【1M;1兆;1024K】
34、 问题:32位微处理器有两个独立的物理空间,一个是存储空间,另一个是( )空间。
答案: 【I/O;输入输出;IO;输入/输出】
38、 问题:80X86微处理器的16位寄存器中,被称作累加器的是( )寄存器。(书写该寄存器的汇编助记符)
答案: 【AX;ax】
39、 问题:80486处理器内部的标志寄存器FLAG,为系统提供( )个控制标志。
答案: 【3;三】
40、 问题:实地址模式下,80486处理器内部的寄存器SS在访问内存时用来提供( )段的段基址。
答案: 【堆栈】
1.符号指令和机器指令是一对一的关系(在汇编语言源程序中,符号指令汇编时汇编为机器指令)
2.8086的标志寄存器FLAG中定义的状态标志有6个,控制表示有3个
3.汇编语言程序中的标号代表指令地址
4.标志位SF表示运算结果的最高位是否为1
5.实模式下,CPU要执行的下一条指令的逻辑地址分别在CS:IP寄存器中。
6.
7.有关标志寄存器的六个状态位:
①AF:(最低的)半个字节进位标志
②PF:(最低的)一个字节中“1”的个数是否为偶数个
注:这边结果的最后一个字节是0个1,也算作是偶数个1
8.Q:默认段寄存器怎么确定的,bp默认是堆栈,si默认是数据该听谁的,看答案好像是以基址寻址的那个默认段寄存器为准。
ANS: B
1.指令错误专题:
①应该是基址+变址,而这个图片是变址+变址
②这个如果没有段前缀,那么就是“寄存器间接寻址”。这边加上DS前缀,那么肯定是基址/变址/基址+变址寻址。那么使用的寄存器就不会包含(AX),常见的有BP BX DI SI
③本题A、C选项原因同上,B错在:寄存器间接寻址没有DX,只有BP BX DI SI等
这个第二个是相同的原因。DX不能用作间址寄存器。
这个也是同理。
③两个错误注意:
④A两者类型不一,B中lea指令源操作数只能是内存操作数,C对,D:PUSH的进出栈的数据规定位数必须是16位or32位。(其次要注意的是:push和pop是针对堆栈寄存器而言的,如push ax是将ax的内容push到堆栈寄存器中)
2.无符号乘法
3.堆栈的定义:
4.用EQU语句是不会占用内存空间的。
5.细心
6.脑筋急转弯(doge):[ ] 中的是偏移地址, lea求的是偏移地址。这两者是相等的。
7.①注意变量TABLE定义方式是用WORD定义的,所以如果不用ptr转化的话,默认取的时候必须取两个byte;其次取两个字节也是和AX相对应。②注:变量名用DW定义的话,一个数据是要占到2个byte的位置的,以tabel+6中的40为例,其存进内存中是28H(低位),00(高位)。③针对本题,table+3会索引到00,但是要取两个字节:所以ans:1e00H
8.①-1的一个字节的补码是FFH,按照一个字存的时候,高位扩充的是1,所以是FF
② W3单元的内容是’3’字符对应的ASCII码为33H
9.错因:200H - 十进制的4当成了196.。。。。。。
1.REPE是匹配相等则往下走;REPNE是不匹配则往下走(同时会修改CX和SI\DI指针的值)
2.非法格式的指令的条数:
思考方向:
下面程序段的功能是在一组数据中,找出最大数和最小数(有符号数),并分别存入MAX和MIN单元中。请在程序中各横线上填入适当的指令语句。(注:(1)不能有多余的空格,例:操作码和操作数之间空格只有一位;操作数和操作数之间用半角逗号隔开,不能有空格。(2)字符全部大写,并且为半角字符。(3)指令与和指令之间用一个半角空格分开。)
.486
DATA SEGMENT USE16
BUF DW 500, -600,67,433,-1
CN DW ($-BUF)/2 # 由于定义的是字,而$-buf得到的是字节数,想知道num个数得要除以2
MAX DW ?
MIN DW ?
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE, DS:DATA
START:MOV AX,DATA
MOV DS, AX
MOV SI,OFFSET BUF
MOV CX, CN
DEC CX #由于预置数是第一个元素,所以只需要比较比较n-1次
MOV AX, [SI]
MOV MAX, AX
MOV MIN, AX
COMPA:______
MOV AX,[SI]
CMP AX,MAX
JL NEXT
MOV MAX,AX
______
NEXT: CMP AX,MIN
JG LOP
MOV MIN,AX
LOP: _____
MOV AH,4CH
INT 21H
CODE ENDS
END START
数据段ds和附加段es分别定义字符串变量STR1和STR2如下,其中,变量STR1和STR2的偏移地址都为0。
STR1 DB ‘Hello1ABC‘
STR2 DB ‘Hello2ABC’
则执行以下程序段后,SI=______H,AL=______H。 (注:(1)字符全部大写,并且为半角字符。(2)答案和答案之间用一个半角空格分开。)
LEA SI,STR1
LEA DI,STR2
MOV CX,9
CLD
REPE CMPSB
JZ STOP
DEC SI
MOV AL,[SI]
STOP;
6.XOR在这里可以用来判断最高位是否相同,相同SF=0,不同SF=1,因此可以用JS/JNS指令进行条件转移。
下面这题如果使用XOR的话,还得需要知道AL其他每一位的值才行
7.MOV指令是不影响6个状态标志位的。
8.考点:
- CS IP是由操作系统赋值的
- SS SP可由操作系统赋值也可以由程序员赋值
- 其余均为程序员
9.书写规范
10.XOR确实可以达到按位取反的效果。
1.概念类
①END语句表示源程序到此结束
②键盘上按的9实际上返回的二进制编码是’9’对应的ascii码
③
④
⑤
⑥XCHG 命令交换两个操作数(限制同mov)
⑦edit得到.asm文件,然后汇编得到.obj目标文件,最后链接得到.exe文件或.com文件
⑧要在屏幕上显示一彩色字符串,可以调用的是(BIOS INT 10H的13H号)功能调用。
⑨【DOS INT 21H 的功能号09H】会破坏AL寄存器的值
(10)设置逻辑段应该采用的一对伪指令是 (segment/ends即SEGMENT/ENDS)
(11)1号DOS系统功能调用,从键盘键入的字符ASCII码存放在**(AL)寄存器中
(12)DOS调用和BIOS调用的功能号都存放在(AH)寄存器中
(13)不依赖于计算机结构的语言是(高级语言)
(14)问题:下面哪个逻辑段寄存器一定是由程序员赋值的**。
选项:A:DS B:SS C:CS D:ES
答案: 【DS; ES】
2.读程序:
阅读下面程序段:
MOV DL,0
MOV CX,8
MOV BL,100
AGA: MOV AL,30H
SHR BL,1
JNC NEXT
MOV AL,31H
NEXT: RCL DL,1
MOV AH,0EH
INT 10H
LOOP AGA
执行本程序后DL=_______ H;屏幕上显示内容为_______。
关键:标志寄存器中的CF是共用的,所以在RCL DL 1的时候会让DL得到1。
ANS:26 00100110
其次注意,这边的移位功能是将BL中的二进制代码逆序显示,与书本上的模版相反。
3.DOS的09H号功能基本上都要考察$结尾符号!
问题:数据段
MESG1 DB ’HELLO‘
MESG2 DB ’WELCOME$‘
代码段
MOV AH,9
MOV DX,OFFSET MESG1
INT 21H
执行上述程序段后,屏幕上显示的内容是__。
答案: 【HELLOWELCOME】
1.指令性语句在汇编时被翻译成机器指令。伪指令语句在汇编时由汇编程序执行。
2.在汇编语言中,用于定义变量、内存空间分配的是伪指令。
3.别ptr用魔怔了。。。。
后面实际上就是立即数,前面用间址、变址、基址、基址+变址的寻址方式的时候,需要用ptr进行转换。
4.
首先得了解ascii码仅占用7位bit,校验码的位置放在最高位(D7)
其次,根据p标志得到这个8个bit中1个数是否为偶数位,如果是偶数位需要将标志位设置为1
下面程序段的功能是将STRING单元中的一串标准ASCII码,转换为奇校验ASCII码存入BUF开始的缓冲区,将程序补充完整。
.486
DATA SEGMENT USE16
STRING DB 'THE QUICK BROWN FOX JUMPS OVER LAZY DOG '
COUNT EQU $-STRING
BUF DB COUNT DUP(?)
DATA ENDS
CODE SEGMENT USE16
ASSUME CS:CODE,DS:DATA,ES:DATA
BEG: MOV AX,DATA
MOV DS,AX
_____________________ ;MOV ES,AX # 数据段重叠
MOV CX,COUNT
MOV SI,OFFSET STRING
MOV DI,OFFSET BUF
_____________________ ;CLD # 设置D标志
LOAD: LODSB
AND AL,AL
JNP STORE
_____________________ ;OR AL,80H # 设置最高位的标志位
STORE: STOSB
LOOP LOAD
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
下列程序的功能是用串指令将某数组100H个字元素从内存23456H处传送到内存78B90H,并统计该数组元素的值=FFFFH的元素个数送DL寄存器。将下面程序补充完整。
.586
CODE SEGMENT USE1
ASSUME CS:CODE
BEG: MOV AX,2000H
MOV DS,AX
MOV SI,__________; 3456H
___________________; MOV AX,7800H # ES附加段的段基址
MOV ES,AX
MOV DI ,0B90H
MOV CX,100H
____________________; CLD # 使用串指令前要设置好D标志
REP MOVSW
MOV DI,0B90H
MOV CX,100H
AGA: CMP _________,0FFFFH; WORD PTR ES:[DI] # 这边的两个关键点:①立即数是16位的,word类型强转②DI寄存器是指向ES附加段的而非默认的DS,所以需要声明。
JNZ NEXT
INC DL
NEXT: __________ ;ADD DI,2 # 一个字类型!!!
LOOP AGA
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
6.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现占内存空间大,但速度快
7.CPU执行近过程RET指令,从堆栈中弹出( 2 )个字节
8.
9.实模式下在程序运行过程中,下一条指令物理地址的计算表达式是( CS*16+IP )
10.宏指令必须先定义,后调用;而子程序则可以先调用,后定义√
11.指令LOOP AGAIN实现的功能可以用两条指令完成,请写出这两条指令。
DEC CX
JNZ AGAIN;
12.程序与调用它的主程序不在同一个代码段,则CPU在执行子程序中的RET指令后,将从堆栈栈顶弹出4 个字节,依次赋给IP和CS。(P101)—>在PUSH的时候,先CS后IP
1.由存储空间范围计算对应的存储容量:
2.常识:
3.审题,人家就是字数组,不需要ptr
4.在+SI的时候即+3,直接在table上往右数了三个数字,然而这是一个WORD型变量,导致实际上偏移了6个字节
5.魔怔了,之前都是二进制显示,使用的是左移,但是这边是右移,也就是低位先被显示出来,所以实际上这里的答案都是逆序的。
6.一八年真题:
7.有关有无符号数的范围问题:
8.第二章内容补充
9.第三章知识点补充:
1.
2.
3.IP偏移地址不变
4.
5.默认是以AL为目标寄存器
清零操作:
其他清零操作指令还有“移位指令”
ANS: ROM; RAM
1.这题考点是AL作为SCASB的默认寄存器,DI指针搜索到目标位置的下一个位置,其次书写答案的时候DI是16位bit,所以写16进制的时候最好写成4位
2.伪指令为汇编程序和链接程序提供信息,其功能是由相应的软件完成的。
3.紧凑BCD码—>存的时候注意!!!!
4.指令地址在第一个字节
5.CPU的主要组成包括运算器和控制器
6.。。。。。。
7.数据信号是由数据总线传输的。
8.硬盘是辅助存储器
9.我算出来是56H,答案给的是16进制!!!!!!一定小心!!!!!
10.子程序的两种类型属性。
1.别忘记返回DOS啊,子程序要RET,MOV AH, 4CH INT21H
2.有关EXE文件和COM文件的区别
3.读程题功能:
4.运算器、控制器、存储器、输入设备、输出设备
5.六个状态标志位(缩写及其对应的中文名称)
①实验一: