ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:30.02KB ,
资源ID:5345344      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5345344.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机原理习题答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机原理习题答案.docx

1、计算机原理习题答案第四章 80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。(1)DATA1 DB 10,?,A(2)DATA2 DW 10 DUP(2,3 DUP(?),1)(3)DATA3 DB HELLO,WORLD!,$(4)DATA4 DW DATA4解:(1)3字节; (2)100字节; (3)13字节; (4)2字节。2、指出以下数据定义伪指令所分配的字节数(80386系统)。(1)DATA1 DF 12,34,56(2)DATA2 DF DATA2(3)DATA3 DQ 0,10 DUP(?)(4)DATA4 DT 0,1,2解:(1

2、)18字节; (3)6字节; (3)88字节; (4)30字节。3、指出以下指令中哪些是无效的,并说明原因。(1)ADDR DB $(2)DATA DB F0H,12H(3)1_DATA DW 1234H(4)VAR DW VAR1 ;VAR1为一个字节变量(5)MOV AX,10-VAR1 ;VAR1为一个字变量(6)MOV BX,VAR2*2+1 ;VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址

3、表达式不能出现乘法。4、假设已定义数据段如下:DATA SEGMENT ORG 100HDATA1 DB 10 DUP(1,2,3)DATA2 DW DATA1,$DATA ENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。请指出以下指令执行后,相应的寄存器中的内容。(1)MOV AX,WORD PTR DATA1 ;(AX)=?(2)MOV BX,DATA2 ;(BX)=?(3)MOV CX,DATA2+2 ;(CX)=?(4)MOV DX,OFFSET DATA2 ;(DX)=?(5)MOV SI,SEG DATA1 ;(SI)=?(6)MOV DI,LENGTH

4、 DATA1 ;(DI)=?(7)MOV SP,TYPE DATA1 ;(SP)=?(8)MOV BP,SIZE DATA2 ;(BP)=?解:(1)(AX)=0201H; (2)(BX)=0100H; (3)(CX)=0120H; (4)(DX)=011EH;(5)(SI)=1234H; (6)(DI)=000AH; (7)(SP)=0001H; (8)(BP)=0002H。5、在8086系统下,编写完整程序,实现从键盘上输入8位二进制数,从显示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”。解:参考程序:DATA SEGMENTMSG1 DB I

5、nput binary number(ESC to exit):,$MSG2 DB 0AH,0DH,Input error!,0AH,0DH,$DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入信息MOV CX, 8 ;输入8位二进制数MOV B

6、L, 0L: MOV AH, 1INT 21HSHL BL, 1CMP AL, 1BH ;ESC键退出JZ DONECMP AL, 0 ;输入“0”JZ NEXTCMP AL, 1 ;输入“1”JNZ ERROR ;输入其他则出错INC BLNEXT: LOOP LOUTPUT 0AHOUTPUT 0DHPUSH BXMOV CL, 4SHR BL, CLCALL TRAN ;显示高4位对应的16进制数POP BXAND BL, 0FHCALL TRAN ;显示低4位对应的16进制数OUTPUT HOUTPUT 0AHOUTPUT 0DHJMP AGAINERROR: LEA DX, MSG2

7、MOV AH, 9INT 21HJMP AGAINDONE: RETMAIN ENDPTRAN PROC FARCMP BL, 0AHJB BELOWADD BL, 7BELOW: ADD BL, 30HOUTPUT BLRETTRAN ENDPCODE ENDSEND MAIN6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”。解:参考程序:DATA SEGMENTMSG1 DB Input the first number(ESC to exit):,$MSG2 DB Input

8、 the second number(ESC to exit):,$MSG3 DB 0AH,0DH,Input error!Input again:,$DATA ENDSOUTPUT MACRO ASC ;定义输出一个字符的宏MOV DL, ASCMOV AH, 2INT 21HENDMCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN: MOV AX, DATAMOV DS, AXAGAIN: LEA DX, MSG1MOV AH, 9INT 21H ;提示输入第一个数CALL INPUT ;输入过程PUSH BXOUTPUT 0AHOUTPUT 0DHLEA D

9、X, MSG2 MOV AH, 9INT 21H ;提示输入第二个数CALL INPUT ;输入过程OUTPUT 0AHOUTPUT 0DHPOP AX ;实现两个4位组合BCD码相加ADD AL, BL ;低8位相加DAA ;校正MOV CL, AL ;保存至CLADC AH, BH ;高8位相加MOV AL, AH ;移至ALDAA ;校正MOV AH, ALMOV AL, CLMOV BX, AX ;最后结果放在BX中JNC NEXTOUTPUT 1 ;如果相加结果大于9999,则显示进位“1”NEXT: PUSH BXMOV CL, 4SHR BH, CLADD BH, 30HOUTP

10、UT BH ;显示千位数POP BXPUSH BXAND BH, 0FHADD BH, 30HOUTPUT BH ;显示百位数POP BXPUSH BXMOV CL, 4SHR BL, CLADD BL, 30HOUTPUT BL ;显示十位数POP BXAND BL, 0FHADD BL, 30HOUTPUT BL ;显示个位数OUTPUT 0AHOUTPUT 0DHJMP AGAININPUT PROC FAR ;输入一个4位十进制数的过程BEGIN: MOV CX, 4MOV BX, 0L: SHL BX, 1SHL BX, 1SHL BX, 1SHL BX, 1 ;BX的值乘以16MO

11、V AH, 1INT 21H ;输入CMP AL, 1BH ;ESC键退出JZ DONECMP AL, 0JB ERROR ;非数字,出错CMP AL, 9JA ERROR ;非数字,出错SUB AL, 30HXOR AH, AHADD BX, AX ;将输入加到BX中LOOP LRETERROR: LEA DX, MSG3MOV AH, 9INT 21HJMP BEGINDONE: MOV AH, 4CHINT 21HINPUT ENDPCODE ENDSEND MAIN7、在8086系统下,编写完整程序,实现两个32位带符号数相乘。假设被乘数存放在以字变量MUL1开始的连续4个字节中,乘数

12、存放在以字变量MUL2开始的连续4个字节中中,相乘结果存放在以字变量RES开始的连续8个字节中。解:参考程序:DATA SEGMENTMUL1 DW 0FFFFH,0FFFFH ;被乘数MUL2 DW 5678H,1234H ;乘数RES DW 4 DUP(0) ;结果DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV CX, MUL1MOV BP, MUL1+2MOV SI, MUL2MOV DI, MUL2+2TEST BP, 80

13、00H ;被乘数是否为负数JZ NEXT1NOT BP ;为负数,则取反加1NOT CXADD CX, 1ADC BP, 0NEXT1: TEST DI, 8000H ;乘数是否为负数JZ NEXT2NOT SI ;为负数,则取反加1NOT DIADD SI, 1ADC DI, 0NEXT2: MOV AX, SI ;相乘过程MUL CXMOV RES, AXMOV RES+2, DXMOV AX, SIMUL BPADD RES+2, AXADC RES+4, DXMOV AX, DIMUL CXADD RES+2, AXADC RES+4, DXMOV AX, DIMUL BPADD RE

14、S+4, AXADC RES+6, DXMOV AX, MUL1+2XOR AX, MUL2+2 ;判断被乘数和乘数是否同号JNS DONE ;同号,则结果为正数,无须修改结果NOT RES ;不同号,则结果为负数,须取反加1NOT RES+2NOT RES+4NOT RES+6ADD RES, 1ADC RES+2, 0ADC RES+4, 0ADC RES+6, 0DONE: RETMAIN ENDPCODE ENDSEND MAIN8、在8086系统下,编写完整程序,找出字节数组ARRAY中的最大值和最小值。假设ARRAY的长度为100个字节,每个字节为一个无符号数,程序执行后最大值将存

15、放到字节变量MAX中,最小值则存放到字节变量MIN中。解:参考程序:DATA SEGMENTARRAY DB 100 DUP(?) ;字节数组MAX DB ? ;最大值MIN DB ? ;最小值DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXLEA SI, ARRAYCLDMOV BH, 0 ;存放临时最大值的寄存器MOV BL, 0FFH ;存放临时最小值的寄存器MOV CX, 100AGAIN: LODSBCMP AL, BHJNA N

16、EXT1MOV BH, AL ;如果当前数值比临时最大值大,则代替NEXT1: CMP AL, BLJNB NEXT2MOV BL, AL ;如果当前数值比临时最小值小,则代替NEXT2: LOOP AGAINMOV MAX, BHMOV MIN, BLRETMAIN ENDPCODE ENDSEND MAIN9、在8086系统下,编写完整程序,将字节数组ARRAY中的所有数据往高地址的方向移动一位,即原来存放在ARRAY中的字节移动到ARRAY+1中,原来存放在ARRAY+1中的字节移动到ARRAY+2中,依此类推。假设ARRAY的长度为100个字节。解:可利用MOVSB指令实现移位,但应该

17、注意,必须从串尾开始移动,因为假如直接从串头开始,将串头移到第二个数,那么第二个数将被覆盖。为使程序能从串尾开始移动,可令方向标志位DF=1。参考程序:DATA SEGMENTARRAY DB 100 DUP(?), ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, ARRAY+99 ;SI指向源串尾LEA DI, ARRAY+100 ;DI指向新串尾STD ;DF=1,串尾先移动MOV CX, 100R

18、EP MOVSB ;循环移动RETMAIN ENDPCODE ENDSEND MAIN10、在8086系统下,编写在长字符串L_STR中查找短字符串S_STR的完整程序,如果找到匹配的字符串,则将字节变量RES置0FFH,否则置0。例如,在字符串“ABABCD”中可找到字符串“ABC”,则RES=0FFH。解:参考程序:DATA SEGMENTL_STR DB ABDABABCD ;长串L_LTH DW $-L_STR ;长串长度S_STR DB ABC ;短串S_LTH DW $-S_STR ;短串长度RES DB ? ;存放结果DATA ENDSCODE SEGMENTASSUME CS:

19、CODE, DS:DATAMAIN PROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, L_STRLEA DI, S_STRCLDMOV CX, L_LTHSUB CX, S_LTHINC CX ;作串比较的次数AGAIN: CALL COMP ;进行串比较INC SILOOP AGAINMOV RES, 0RETMAIN ENDPCOMP PROC FARPUSH CXPUSH SIPUSH DIMOV CX, S_LTHREPZ CMPSBJZ YES ;如果两个串相同,则说明找到POP DIPOP

20、SIPOP CXRETYES: MOV RES, 0FFHMOV AH, 4CH INT 21HCOMP ENDPCODE ENDSEND MAIN11、在80386系统下,编程实现两个64位无符号数相乘。解:参考程序:.386. MODEL SMALL.DATAMUL1 DD 3456789AH, 12345678H ;被乘数MUL2 DD 789ABCDEH, 3456789AH ;乘数RES DD 4 DUP(0) ;存放128位结果,初始化为0.CODEMAIN: MOV AX, DATAMOV DS, AXMOV EAX, MUL2MUL MUL1MOV RES, EAXMOV RE

21、S+4, EDXMOV EAX, MUL2MUL MUL1+4ADD RES+4, EAXADC RES+8, EDXMOV EAX, MUL2+4MUL MUL1ADD RES+4, EAXADC RES+8, EDXMOV EAX, MUL2+4MUL MUL1+4ADD RES+8, EAXADC RES+12, EDXMOV AH, 4CHINT 21H END MAIN计算机原理及系统结构复习题1若十进制数据为137.5则其八进制数为( )。A. B. C. D. 2Cache是在( )之间设置的高速缓存。ACPU与辅存 BCPU与主存 C主存与辅存 D主存与寄存器3.计算机输入输出

22、系统的设计主要考虑如何在操作系统和输入输出系统之间( )。A建立高速的数据传送通道B进行合理的软、硬件功能分配C建立高效的I/O映象及自动生成通道程序D进行快速编译4CRT的分频率为10241024像素,像素的颜色数为256色,则刷新存储器的容量是( )。A. 512KB B. 1MB C. 256KB D. 2MB5存储器是计算机系统的记忆设备,主要用于( )。A.存放程序 B.存放软件 C.存放微程序 D.存放程序和数据6下列数中最大的数是( )。A(10011001)2 B.(227)8 C.(98)16 D.(152)107. 为了缩短指令中某个地址段的位数,有效的方法是采取( )。A

23、. 立即寻址 B. 变址寻址 C. 间接寻址 D.寄存器寻址8下面叙述中,( )是正确的。A.总线一定要和接口相连 B.接口一定要和总线相连 C.通道可以替代接口 D.总线始终由CPU控制和管理9下面叙述中,( )是正确的。A.总线一定要和接口相连 B.接口一定要和总线相连 C.通道可以替代接口 D.总线始终由CPU控制和管理10CRT的分频率为10241024像素,像素的颜色数为256色,则刷新存储器的容量是( )。A. 512KB B. 1MB C. 256KB D. 2MB11.微指令由( )直接执行。A硬件 B编译程序 C微指令程序 D机器指令12. 若x补=0.1101010,则x原

24、=( )。A. B. C. D. 13EPROM是指( )。A. 读写存储器 B. 只读存储器 C. 可编程的只读存储器 D. 光擦除可编程的只读存储器14透明性是指( )。A某一事物或属性实际存在,但从某种角度来看好象不存在,或者说看不出来。B某一事物或属性不存在,但感觉好象存在,或者说看起来存在。C某一事物或属性实际存在,但从任何角度来看好象不存在,或者说看不出来。D某一事物或属性不存在,但从某种角度来看好象存在,或者说看起来存在。15下列数中最大的数是( )。A(10011001)2 B.(227)8 C.(98)16 D.(152)1016系统总线中地址线的功能是( )。A. 用于选择

25、主存单元地址 B. 用于选择进行信息传输的设备C. 用于选择外存地址 D. 用于指定主存和I/O设备接口电路的地址17存储器是计算机系统的记忆设备,主要用于( )。A.存放程序 B.存放软件 C.存放微程序 D.存放程序和数据18.计算机输入输出系统的设计主要考虑如何在操作系统和输入输出系统之间( )。A建立高速的数据传送通道B进行合理的软、硬件功能分配C建立高效的I/O映象及自动生成通道程序D进行快速编译19采用DMA方式传送数据时,每传送一个数据要占用( )的时间。A. 一个指令周期 B. 一个机器周期 C. 一个时钟周期 D. 一个存储周期20原码乘法是( )。A.先取操作数绝对值相乘,

26、符号位单独处理B.用原码表示操作数,然后直接相乘C.被乘数用原码表示,乘数取绝对值,然后相乘D.乘数用原码表示,被乘数取绝对值,然后相乘21用某个寄存器中操作数的寻址方式称为( )寻址。A 直接 B 间接 C 寄存器直接 D 寄存器间接22. 半导体静态存储器SRAM的存储原理是( )。A. 依靠双稳态电路 B. 依靠定时刷新 C. 依靠读后再生 D. 信息不再变化23若某数x的真值为-0.1010,在计算机中该数表示为1.0110,则该数所用的编码为( )。 24. 原码加减交替除法又称为不恢复余数法,因此( )。A. 不存在恢复余数的操作 B. 当某一步运算不够减时,做恢复余数的操作C.

27、仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作25在ROM存储器中必须有( 26. 下列有关运算器的描述中,( )是正确的。A.只做算术运算,不做逻辑运算 B. 只做加法 C.能暂时存放运算结果 D. 既做算术运算,又做逻辑运算27. 流水CPU 是由一系列叫做“段”的处理线路所组成,和具有m个并行部件的CPU相比,一个 m段流水CPU( )。28. 构成存储层次的主要依据是( )。A高速存储器件的迅速发展 B多体交叉存储器的采用C程序的局部性 D操作系统的功能扩展29. 程序的局部性包括( )。A时间上的局部性和空间上的局部性B静态性能局部性和动态性能局部性

28、CCache中的局部性和主存中的局部性D主存中的局部性和辅存中的局部性30. 指令系统是表征一台计算机性能的重要因素,它的_和_不仅影响到机器的硬件结构,而且也影响到_。31. 是否采用通道方式输入输出的确定属于_,通道采用结合型还是独立型属于_。32. 模拟是指用_解释,实现_的方法。33主存储器的性能指标主要是_、_、存储周期和存储器带宽。34微指令设计方法包括_、_、垂直型微指令法。35运算器的两个主要功能是:_,_。36寻址方式在指令中有两种指明方式,一是通过 来指明,二是通过 来指明。37存储器和CPU连接时,要完成_的连接;_的连接和_的连接,方能正常工作。38CISC(复杂指令系统的计算机)和RISC(精简指令系统的计算

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1