计算机原理习题答案04.doc

计算机原理习题答案04.doc

ID:62152719

大小:46.50 KB

页数:10页

时间:2021-04-19

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

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

1、个人收集整理勿做商业用途第四章 80x86汇编语言程序设计习题与答案1、指出以下数据定义伪指令所分配的字节数(8086系统)。(1)DATA1ﻩDBﻩ10,?,‘A’(2)DATA2ﻩDW10DUP(2,3DUP(?),1)(3)DATA3DBﻩ‘HELLO,WORLD!’,‘$’(4)DATA4ﻩDWDATA4解:(1)3字节;ﻩ(2)100字节;ﻩ(3)13字节;(4)2字节。2、指出以下数据定义伪指令所分配的字节数(80386系统)。(1)DATA1DF12,34,56(2)DATA2ﻩDFﻩDATA2(3)DATA3DQ0,10 DUP(?)(

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

3、字开头;(4)合法;(5)非法,地址表达式不能是“常数-地址”;(6)非法,地址表达式不能出现乘法。4、假设已定义数据段如下:DATASEGMENTﻩﻩORGﻩ100HDATA1DB10DUP(1,2,3)DATA2DWﻩDATA1,$DATAENDS且段寄存器DS已初始化为该数据段的段基址(假设段基址为1234H)。请指出以下指令执行后,相应的寄存器中的内容。个人收集整理勿做商业用途(1)MOVﻩAX,WORDPTRDATA1;(AX)=?(2)MOVBX,DATA2ﻩ;(BX)=?(3)MOVCX,DATA2+2ﻩﻩ;(CX)=?(4)MOVDX,

4、OFFSETDATA2ﻩ;(DX)=?(5)MOVSI,SEGﻩDATA1;(SI)=?(6)MOVﻩDI,LENGTHDATA1;(DI)=?(7)MOVSP,TYPEDATA1ﻩﻩ;(SP)=?(8)MOVﻩBP,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位二进制数,从显

5、示器上显示相应的16进制数,例如从键盘上输入“00010010”,应在显示器上显示“12H”。解:参考程序:DATAﻩSEGMENTMSG1ﻩDB'Inputbinary number(ESCtoexit):','$'MSG2DBﻩ0AH,0DH,'Input error!',0AH,0DH,'$'DATAﻩENDSOUTPUTﻩMACROﻩASCﻩﻩ;定义输出一个字符的宏MOVDL, ASCMOVﻩﻩAH,2INT21HENDMCODESEGMENTASSUMEﻩCS:CODE,DS:DATAMAINPROCﻩFARPUSHﻩDSMOVﻩﻩAX, 0

6、PUSHﻩAXMOVﻩAX, DATAMOVDS, AXAGAIN:LEAﻩﻩDX,MSG1MOVﻩAH,9INTﻩﻩ21Hﻩ;提示输入信息MOVﻩﻩCX,8;输入8位二进制数MOVBL,0L:ﻩMOVAH,1INTﻩﻩ21HSHLﻩﻩBL,1CMPﻩﻩAL,1BH;ESC键退出JZDONECMPﻩAL, '0'ﻩﻩ;输入“0”个人收集整理勿做商业用途JZNEXTCMPﻩﻩAL,'1'ﻩ;输入“1”JNZﻩﻩERROR;输入其他则出错INCBLNEXT:ﻩLOOPLOUTPUTﻩ0AHOUTPUTﻩ0DHPUSHBXMOVﻩﻩCL,4SHRﻩBL,CL

7、CALLTRANﻩ;显示高4位对应的16进制数POPBXANDﻩBL, 0FHCALLTRANﻩ;显示低4位对应的16进制数OUTPUT'H'OUTPUTﻩ0AHOUTPUT0DHJMPAGAINERROR:LEAﻩﻩDX,MSG2MOVﻩﻩAH, 9INT21HJMPﻩAGAINDONE:ﻩRETMAINENDPTRANPROCﻩFARCMPBL, 0AHJBBELOWADDﻩﻩBL,7BELOW:ﻩADDBL,30HOUTPUTﻩBLRETTRANﻩENDPCODEENDSENDﻩMAIN6、在8086系统下,编写完整程序,实现从键盘上输入两个4位

8、十进制数,从显示器上显示这两个数之和,例如输入“1234”、“5678”,应在显示器上显示“6

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

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

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