计算机原理习题答案.doc

计算机原理习题答案.doc

ID:51778785

大小:46.50 KB

页数:10页

时间:2020-03-15

计算机原理习题答案.doc_第1页
计算机原理习题答案.doc_第2页
计算机原理习题答案.doc_第3页
计算机原理习题答案.doc_第4页
计算机原理习题答案.doc_第5页
资源描述:

《计算机原理习题答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。(1)DATA1DB10,?,‘A’(2)DATA2DW10DUP(2,3DUP(?),1)(3)DATA3DB‘HELLO,WORLD!’,‘$’(4)DATA4DWDATA4解:(1)3字节;(2)100字节;(3)13字节;(4)2字节。2、指出以下数据定义伪指令所分配的字节数(80386系统)。(1)DATA1DF12,34,56(2)DATA2DFDATA2(3)DATA3DQ0,10DUP(?)(4)DATA4DT0

2、,1,2解:(1)18字节;(3)6字节;(3)88字节;(4)30字节。3、指出以下指令中哪些是无效的,并说明原因。(1)ADDRDB$(2)DATADBF0H,12H(3)1_DATADW1234H(4)@VARDWVAR1;VAR1为一个字节变量(5)MOVAX,[10-VAR1];VAR1为一个字变量(6)MOVBX,[VAR2*2+1];VAR2为一个字变量解:(1)非法,地址计数器$是32位数;(2)非法,以字母开头的16进制数应在前面加“0”,即应为“0F0H”;(3)非法,变量名非法,不能以数字开头;(4)合法

3、;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。4、假设已定义数据段如下:DATASEGMENTORG100HDATA1DB10DUP(1,2,3)DATA2DWDATA1,$DATAENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。请指出以下指令执行后,相应的寄存器中的内容。(1)MOVAX,WORDPTRDATA1;(AX)=?(2)MOVBX,DATA2;(BX)=?(3)MOVCX,DATA2+2;(CX)=?(4)MOVDX,OFFSETDATA2;(DX)

4、=?(5)MOVSI,SEGDATA1;(SI)=?(6)MOVDI,LENGTHDATA1;(DI)=?(7)MOVSP,TYPEDATA1;(SP)=?(8)MOVBP,SIZEDATA2;(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进制数,

5、例如从键盘上输入“00010010”,应在显示器上显示“12H”。解:参考程序:DATASEGMENTMSG1DB'Inputbinarynumber(ESCtoexit):','$'MSG2DB0AH,0DH,'Inputerror!',0AH,0DH,'$'DATAENDSOUTPUTMACROASC;定义输出一个字符的宏MOVDL,ASCMOVAH,2INT21HENDMCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVD

6、S,AXAGAIN:LEADX,MSG1MOVAH,9INT21H;提示输入信息MOVCX,8;输入8位二进制数MOVBL,0L:MOVAH,1INT21HSHLBL,1CMPAL,1BH;ESC键退出JZDONECMPAL,'0';输入“0”JZNEXTCMPAL,'1';输入“1”JNZERROR;输入其他则出错INCBLNEXT:LOOPLOUTPUT0AHOUTPUT0DHPUSHBXMOVCL,4SHRBL,CLCALLTRAN;显示高4位对应的16进制数POPBXANDBL,0FHCALLTRAN;显示低4位对应的

7、16进制数OUTPUT'H'OUTPUT0AHOUTPUT0DHJMPAGAINERROR:LEADX,MSG2MOVAH,9INT21HJMPAGAINDONE:RETMAINENDPTRANPROCFARCMPBL,0AHJBBELOWADDBL,7BELOW:ADDBL,30HOUTPUTBLRETTRANENDPCODEENDSENDMAIN6、在8086系统下,编写完整程序,实现从键盘上输入两个4位十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6912”。解:参考程序:D

8、ATASEGMENTMSG1DB'Inputthefirstnumber(ESCtoexit):','$'MSG2DB'Inputthesecondnumber(ESCtoexit):','$'MSG3DB0AH,0DH,'Inputerror!Inputagain:','$

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。