计算机原理作业习题及答案1209学生.docx
《计算机原理作业习题及答案1209学生.docx》由会员分享,可在线阅读,更多相关《计算机原理作业习题及答案1209学生.docx(38页珍藏版)》请在冰豆网上搜索。
计算机原理作业习题及答案1209学生
第1章微型计算机基础知识
一、选择题
3.若用MB作为PC机主存容量的计量单位,1MB等于()字节。
A、210个字节B、220个字节C、230个字节D、240个字节
4.运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为()。
A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出
B、两个整数相加,若结果的符号位为0,则一定发生溢出
C、两个整数相加,若结果的符号位为1,则一定发生溢出
D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出
5.运算器的主要功能是()。
A、算术运算B、逻辑运算C、算术运算与逻辑运算D、函数运算
6.运算器由很多部件组成,其核心部分是()。
A、数据总线B、算术逻辑单元C、累加器D、多路开关
7.在一般的微处理器中,()包含在CPU中。
A、内存B、输入/输出单元C、磁盘驱动器D、算术逻辑单元
9.若某数据段位于存储区38000H~47FFFH,则该数据段的段基址为()。
A、38000HB、47FFFHC、3000HD、3800H
10.程序设计中所使用的地址是()。
A、逻辑地址B、有效地址C、物理地址D、段基址
11.80X86执行程序时,对存储器进行访问时,物理地址可由()组合产生。
A、SS和IPB、CS和IPC、DS和IPD、CS和BP
12.某处理器与内存进行数据交换的外部数据总线为32位,它属于()。
A、8位处理器B、16位处理器C、32位处理器D、64位处理器
13.在堆栈操作中,隐含使用的通用寄存器是()。
A、AXB、BXC、SID、SP
14.主要决定微机性能的是()
A、CPUB、耗电量C、质量D、价格
15.十进制负数–38的八位二进制补码是()
16.若某台微型计算机的型号是奔四800,则其中800的含义是()
A、CPU中有800个寄存器B、CPU中有800个运算器
C、该微机的内存为800MBD、时钟频率为800MHZ
17.在计算机内部,一切信息的存取,处理和传送都是以()形式进行。
A、EBCDIC码B、ASCII码C、十六进制编码D、二进制编码
18.16位PC机中整数的有效范围是()
A、-32768―32767B、-32767―32767
C、0―65535D、-32768―32767或0―65535
–1
A、原码B、反码C、补码D、BCD码
20.用8位的二进制数的补码形式表示一个带符号数,它能表示的整数范围是()
A、-127—+127B、-128—+128C、-127—+128D、-128—+127
21.计算机中运算器和控制器合称为()
A、CPUB、ALUC、主机D、ENIAC
22.32位的个人计算机,一个字节(Byte)由()位(bit)组成。
A、4B、8C、16D、32
24.从功能上,8086的CPU由()两部分组成。
A、SP、ALUB、控制器、FLAGSC、EU、BIUD、EU、ALU
25.标志寄存器FLAGS中存放两类标志,即()。
A、符号标志、溢出标志B、控制标志、状态标志
C、方向标志、进位标志D、零标志、奇偶标志
26.若AL=3BH,AH=7DH,则AL和AH中的内容相加后,标志CF、SF和OF的状态分别是()。
A、0、1、1B、1、1、1C、0、0、0D、1、1、0
27.若AL=3BH,AH=7DH,则AL和AH中的内容相减后,标志CF、AF和PF的状态分别是()。
A、0、0、1B、1、1、1C、0、1、0D、1、0、0
28.下列有关指令指针寄存器的说法中,哪一个是正确的()。
A、IP存放当前正在执行的指令在代码段中的偏移地址
B、IP存放下一条将要执行的指令在代码段中的偏移地址
C、IP存放当前正在执行的指令在存储器中的物理地址
D、IP存放当前正在执行的指令在存储器中的段地址
29.最小模式时,当M/-----IO为低电平时,表示CPU正在对()进行访问。
A、存储器B、I/O端口C、外部存储器D、EPROM
30.下面有关MN/----------MX的叙述正确的是()
A、是工作模式选择信号,由CPU产生,为高电平时CPU工作在最小模式,为低电平时,CPU工作在最大模式
B、是工作模式选择信号,由CPU产生,为低电平时CPU工作在最小模式,为高电平时,CPU工作在最大模式
C、是工作模式选择信号,由外部输入,为低电平时CPU工作在最小模式,为高电平时,CPU工作在最大模式
D、是工作模式选择信号,由外部输入,为高电平时CPU工作在最小模式,为低电平时,CPU工作在最大模式
31.某CPU的主频为250MHZ,则它的时钟周期为()
A、250nsB、50nsC、40nsD、4ns
32.如果访问存储器时使用BP寻址,则默认的段寄存器是()
A、CSB、ESC、DSD、SS
33.某单元在数据段中,已知DS=1000H,偏移地址为1200H,则它的物理地址为()
A、10000HB、11200HC、12100HD、13000H
34.某系统中,已知SS=2360H,SP=0800H,若将20H个字节的数据入栈,则SP的内容为()
A、0780HB、0820HC、23E20HD、07E0H
35.某系统中,已知建立堆栈时SS=2360H,SP=0800H,经过一段时间后,SP的内容变为0700H,则堆栈中有多少个字的数据()
A、80HB、50HC、100D、100H
36.设某一个单元的物理地址是54321H,则正确的逻辑地址表示为()
A、4321H:
50000HB、54320H:
1HC、5430H:
0021HD、5432H:
00001H
37.如果一个程序在执行前CS=1000H,IP=2000H,该程序的起始地址是()
A、3000HB、12000HC、21000HD、1000H
38.如果一个堆栈从地址1250H:
0100H开始,SP=0050,则SS的段地址是()
A、12600HB、1260HC、1265HD、125BH
39.若已知[X]补补=01001010B,则[X–Y]补=()
A、、、、溢出
二、判断题
3.若一个数据块的起始地址为20A0H:
0F6H,则该数据块起始地址的实际地址是21B60H。
4.SP的内容可以不指向堆栈的栈顶。
5.寄存器寻址其运算速度较低。
6.字长是描述CPU数据总线宽度的指标。
7.计算机的堆栈是一种特殊的数据存储区,数据存取采用先进先出的原则。
8.当运算结果各位全部为零时,标志ZF=0。
9.逻辑地址不是物理地址,但它是唯一的。
三、填空题
1.计算机是通过()、()、()总线把各个部件连接在一起,构成一个系统。
2.8086的数据总线是()位,地址总线是()位。
3.PC机主存储器中的基本存储单元的长度是()。
4.80486可访问8位、()、和()、()位的寄存器。
5.在微处理器的实地址方式下,段寄存器的作用是()。
6.若一个数中含有3个“1”,则其奇偶标志为()。
9.程序设计中使用的地址称为(),而CPU对存储器单元进行操作时使用的地址称为()。
12.微机的主要性能指标中,字长是指()。
13.微型计算机由()和()两大部分组成。
14.上电复位时,若CPU的CS=0FFFFH,IP=0000H,则第一条指令从()H方取
15.8088与外部交换数据的总线宽度是位,与寄存器组之间的数据总线宽度是位,EU内部总线宽度是位。
16.设AL=80H,AH=83H,AL和AH中的内容相加后,CF=,OF=,ZF=,PF=,AF=,SF=。
17.8086/8088将整个存储空间划分为许多逻辑段,每个逻辑段容量在
以内,各个逻辑段相互重叠。
18.8086/8088中,某单元只能有一个地址,但可以有多个地址。
19.如果对堆栈进行操作,则段基址来源于,偏移地址来源于。
20.某存储单元物理地址为32413H,则相对于段地址为3000H,其偏移地址为,若,它的偏移地址是1003H,则其段地址为。
21.在8086/8088系统中,所有读写存储器或I/O端口操作都是由通过系统总线完成的。
四、简答题
1.简述EU和BIU的主要功能?
2.8086和8088的主要区别是什么?
第1章微型计算机基础知识
一、选择题
1.D2.C3.B4.D5.C6.B
7.D8.C9.D10.A11.B12.C
13.D14.A15.B16.D17.D18.D
19.C20.D21.A22.B23.A24.C
25.B26.A27.B28.B29.B30.C
31.D32.D33.B34.D35.A36.C
37.B38.B39.A
二、判断题
1.×2.×3.×4.×5.×6.√7.×8.×9.×
三、填空题
1.地址;数据;控制
2.16,20
3.字节
4.16,32
5.存放段基址
6.1
8.SS,SP
9.逻辑地址,物理地址
10.外存
11.寄存器
12.一次能处理的二进制位数
13.软件,硬件
14.FFFF0H
15.8、8、16
16.1,1,0,1,0,0
17.64KB、可以
18.物理,逻辑
19.SS、SP
20.2413H、3141H
21.BIU(总线接口单元)
第2章指令系统及汇编语言程序设计
一.选择题二、判断题
1.指令MOVAX,[BX]的源操作数是寄存器寻址方式。
2.对堆栈区的操作必须遵循先进先出的原则。
3.比较两个带符号数的大小,可根据CF标志来判断。
4.逻辑操作符AND,OR,XOR和NOT,只能用于数字表达式。
5.不能给段寄存器赋立即数。
6.OF位可用来表示有符号数的溢出。
7.无条件转移指令只能用于段内直接转移。
8.MOVAX,[BP]的源操作数的物理地址为16*(DS)+(BP)。
9.指令MOVDI,OFFSET[BX][SI]是正确的。
10.指令MOVCS,BX是非法的。
11.指令NOTAX,BX是合法的。
12.MOV[BX][BP],AX是对的。
13.80486中对堆栈单元的存取操作是以字节为单位的。
14.JMP指令要影响标志位。
15.INC指令影响所有状态标志。
16.欲交换寄存器SI,DI的内容,可用指令XCHGSI,DI实现。
17.CPU中的程序计数器IP中存放的是指令的逻辑地址。
18.两个符号相同的数相减不会产生溢出。
19.汇编程序就是汇编语言程序。
20.相对寻址中的位移量只能用16位表示。
21.CLD指令是MOVSB指令的使用条件之一。
22.段寄存器间不能直接进行数据传送。
23.要把变量BUFF的有效地址送给BX,可用MOVBX,BUFF指令。
24.当对堆栈段的数据进行操作时,其操作数的有效地址可保存在BP中。
25.TEST指令属于逻辑运算指令。
26.CS和IP都不能作传送指令的目的操作数。
三、填空题
1.若SS=5310H,SP=0E30H,其物理地址为()。
2.若CH=07H,CL=08H,执行指令ADDCH,CL后,AF=(),CF=(),OF=(),PF=()。
3.指令由()和()两个字段构成。
4.条件转移指令JNE的测试条件是()。
5.若用指针(BP)访问存储器,则数据包含在()段中。
6.若AX=1234H,SP=1000H,指令PUSHAX执行后AX=(),SP=()。
7.指令采用()寻址方式时操作数是在代码段中。
四、阅读程序
1.程序中数据定义如下:
DATA1DW?
DATA2DB32DUP(?
)
DATA3DD?
COUNTEQU$-DATA1
此时COUNT的值是()。
2.分析下列程序段,说出其功能。
MOVAX,1000H
MOVDS,AX
MOVES,AX
MOVSI,0100H
MOVDI,0200H
MOVCX,50D
REPMOVSB
3.写出下列程序段的功能
MOVBX,2000H
MOVDS,BX
XORAL,AL
MOVCX,100
AGAIN:
MOV[BX],AL
INCBX
LOOPAGAIN
4.写出下列程序段的功能
LEASI,BUFFER
LEADI,ARRAY
MOVCX,100
XORBL,BL
LP:
CMP[SI],01H
JNZLP1
INCBL
LP1:
INCSI
LOOPLP
MOV[DI],BL
5.写出下列程序段的功能
MOVCX,16
MOVAX,N
MOVBH,0
LP0:
SHLAX,1
JCLP
INCBH
LP:
LOOPLP0
MOVSUM,BH
6.写出下列程序段的功能
MOVAL,N
ANDN,0FH
MOVBL,N
SHRAL,4
MOVBH,AL
7.执行下列程序段后,AX=?
MOVAX,0702H
MOVBH,09H
AAD
DIVBH
8.下面程序段执行后AL=?
ABCDW2152H,3416H,5731H,4684H
MOVBX,OFFSETABC
MOVAL,3
XLAT
9.执行下面的程序段后AX=?
MOVCX,5
MOVAX,50
NEXT:
SUBAX,CX
LOOPNEXT
HLT
10.执行下面的程序段后AX=?
TABDW1,2,3,4,5,6
ENTRYEQU6
MOVBX,OFFSETTAB
ADDBX,ENTRY
MOVAX,[BX]
11.执行下面程序段后AX=
ARRAYDW1,2,3,4,5,6,7,8,9,10
COUNTEQU$-ARRAY
XORAX,AX
MOVCX,COUNT
MOVSI,OFFSETARRAY
NEXT:
ADDAX,[SI]
INCSI
LOOPNEXT
12.写出下列程序段的功能
MOVAH,1
INT21H
ANDAL,0FH
MOVBL,AL
MOVAH,1
INT21H
SHLAL,4
ANDAL,BL
将从键盘接受到的两个字符拼在一起
13.执行下列程序段后
NDB07H
XORBH,BH
MOVBL,N
RCLBL,1
ADDBH,BL
XORBH,0FFH
HLT
寄存器BH的值是,寄存器BL的值是。
14.分析下列程序段
MOVAL,N
XORAH,AH
MOVCL,4
DIVCL
当N=3CH时,程序执行完后AX=
15.程序段如下:
CLC
MOVAL,6
MOVBL,9
ADDAL,BL
MOVBL,AL
DAA
执行上面程序段后,AL=,AF=,BL=
16.执行下列指令后
TABLEDB19H,55H,9CH
LEABX,TABLE
MOVAL,[BX]
XORAL,89H
MOV[BX],AL
寄存器AL的值是
17.分析下列程序段,说明该程序段执行何种功能。
MOVCX,10
MOVDL,30H
NEXT1:
MOVAH,2
INT21H
INCDL
LOOPNEXT1
18.执行下列指令后
MOVAX,1245H
MOVBX,5689H
ADDAL,BL
MOVCL,AL
MOVAL,AH
ADCAL,BH
DAA
寄存器AL的值是,寄存器CL的值是
19.分析下列程序段:
MOVAL,N
XORAH,AH
MOVBL,16
DIVBL
当N=57H时,程序执行完后AX=?
20.在下面程序的括号中分别填入如下指令:
①LOOPXH②LOOPNEXH③LOOPEXH
问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么?
START:
MOVAX,04
MOVBX,02
MOVCX,03
MOVDX,05
XH:
INCAX
ADDBX,AX
SHRDX,1
()
HLT
21.阅读程序,请说出该程序的功能是什么?
MOVAX,DATA
MOVDS,AX
LEASI,BUFFER
XORBL,BL
MOVCX,100
AGAIN:
MOVAL,[SI]
TESTAL,1
JNZNEXT
INCBL
NEXT:
INCSI
LOOPAGAIN
HLT
22.从键盘上接收一字符,若是“Y”转YES,是“N”转NO,否则继续等待,到输入“Y”或“N”为止。
程序段如下:
MOVAL,N
ANDAL,0FH
ADDAL,90H
DAA
ADCAL,40H
MOVRUT,AL
HLT
问:
①若N=5,下列程序执行后AL=?
②该程序段的功能是什么?
23.执行下列程序段后:
DATASEGMENT
DT1LABLEWORD
DT2DB12H,34H
DATAENDS
………………
MOVAL,DT2
MOVDX,DT1
寄存器AL的值是①,寄存器DX的值是②。
24.读下列程序,请说出该程序的功能是什么?
DATASEGMENT
SUMDW0
DATAENDS
STACKSEGMENT
DB200DUP(?
)
STACKENDS
CODESEGMENT
ASSUMEDS:
DATA,SS:
STACK,CS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVCX,50
MOVAX,0
MOVBX,1
NEXT:
ADDAX,BX
INCBX
INCBX
DECCX
JNENEXT
MOVSUM,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
25.设伪指令定义如下,请画出内存分配示意图。
BUFDB?
DW‘AB’
DW‘C’
DW1234H
DB‘EF’
26.执行下列程序段后:
DATASEGMENT
DT1DW8A9BH
DT2DB7CH,6DH
DATAENDS
┇
┇
MOVAX,DT1
MOVBX,OFFSETDT1
MOVSI,OFFSETDT2
寄存器BX的值是①,寄存器SI的值是②。
27.执行下列指令后:
TABLEDB10H,33H,41H
┉┉
MOVBX,OFFSETTABLE
MOVAL,[BX]
XORAL,80H
MOV[BX],AL
寄存器AL的值是多少?
28.执行下列程序段后:
DATASEGMENT
N1DW3355H
N2DB23H,89H
DATAENDS
┇
MOVAX,N1
MOVDI,OFFSETN1
MOVBP,OFFSETN2
寄存器DI的值是多少?
寄存器BP的值是多少?
29.执行下列指令后:
DATDB10H,33H,41H
┉┉
LEABX,DAT
MOVAX,SEGDAT
MOVES,AX
MOVAL,ES:
[BX]
XORAL,80H
MOVES:
[BX],AL
寄存器AL的值是多少?
30.执行下列程序段后:
BUFDB01H
……
XORAL,AL
MOVAL,BUF
MOVBL,AL
SALAL,1
ADDAL,BL
XORAL,0FFH
HLT
寄存器AL的值是多少?
寄存器BL的值是多少?
五.程序填空
1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。
请将程序填写完整。
STACK1SEGMENT
STPDW120DUP(?
)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK1
START:
MOVAX,STACK1
MOVSS,AX
MOVSP,SIZESTPMOVCX,120
LOOP1:
MOVAH,01H
INT21H
PUSHAX
()
MOVDL,0AH
MOVAH,02H
INT21H
MOVDL,0DH
INT21H
MOVCX,120
LOOP2:
()
MOVAH,02H
INT21H
LOOPLOOP2
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
六、编写程序
1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。
2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。
3.已知有100字节的数据块存放在以5C10H:
2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:
2008H开始的存储区内。
4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。
5.在以BASE起始的表中存有一组字符,它以‘回车’(0DH)结束。
请编写程序:
实现从该表中查找关键字KEY(设关键字KEY在AL中),并将找到的第一个关键字偏离表首的位置存放在寄存器DX中,若无此关键字,DX返回值为-1。
7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。
8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。
9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。
编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;若无空格则将-1存入POST。
10.BUFFER字节数组中存有一组无序列字节数数据,列的长度表示在BUFFER的第一个字节中KEY中为一个字节数据,编写程序在BUFFER中查找有无KEY,若有就结束,若没有就将KEY加入到BUFFER中去,并修改列的长度。
11.利用移位及数据循环指令完成将DHAL中的16位二进制乘以8的运算,结果仍存入DHAL中。
12.分别从键盘上接收两长度相等的组数A和B,试完成两数组的求和任务,将结果存放在数组C中,并显示在屏幕上。
13.编写程