汇编语言习题以及答案.doc

汇编语言习题以及答案.doc

ID:58849852

大小:46.00 KB

页数:6页

时间:2020-09-23

汇编语言习题以及答案.doc_第1页
汇编语言习题以及答案.doc_第2页
汇编语言习题以及答案.doc_第3页
汇编语言习题以及答案.doc_第4页
汇编语言习题以及答案.doc_第5页
资源描述:

《汇编语言习题以及答案.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、习题4-4.试编程序将内存从50000H到5FFFFH的每个单元均写入数55H,并再逐个单元读出比较,看写入的与读出的是否一致。若全对,则将AL置0;只要有错,则将AL置0FFH。解:START:MOVAX,5000HMOVDS,AXMOVSI,0MOVCX,0FFFFHLOOP1:MOVBYTEPTR[SI],55HMOVAL,[SI]CMPAL,55HJNZLOOPERRLOOP2:INCSILOOPLOOP1MOVBYTEPTR[SI],55H;最后一个单元MOVAL,[SI]CMPAL,55HJ

2、NZLOOPERRMOVAL,0;全对JMPLOOPOUTLOOPERR:MOVAL,0FFHLOOPOUT:NOP4-5.编写一个子程序,对AL中的ASCII字符添加偶校验位(bit7),即:使AL中的“1”的个数为偶数。解:ADDPARITYPROCNEARANDAL,7FHJPADDEXITORAL,80HADDEXIT:RETADDPARITYENDP4-6.利用上题的子程序,编程对内存物理地址10000H开始的1024个单元的ASCII字符加上偶校验位。解:START:MOVAX,1000HM

3、OVDS,AXMOVSI,0MOVCX,1024LOOP1:MOVAL,[SI]CALLADDPARITYMOV[SI],ALINCSILOOPLOOP14-7、试写一子程序,完成对一个8位无符号数乘6的操作。要求:(1)只能用传送、加法及移位指令;(2)入口参数(即8位无符号数)放于AL中,出口参数(即乘6后的结果)放于AX。解:MULTI6PROCNEARPUSHBXMOVAH,0SHLAX,1;乘2MOVBX,AXSHLAX,1;乘4ADDAX,BX;乘6POPBXRETMULTI6ENDP4-8

4、.给定如下程序片段:START:MOVAX,1000H,MOVSS,AXMOVSP,000FHMOVAX,1000HPUSHAXMOVBX,5439HPUSHBXCALLNEARPTRSUBRTPOPAXSTOP0:HLTSUBRT:PUSHBPMOVBP,SPVAAX:MOVAX,[BP+4]ADDAX,456AHMOV[BP+4],AXPOPBPRET4问:(1)程序执行到标号为SUBRT处的指令时,SP=?(2)执行完标号为VAAX的MOV指令后,AX=?(3)执行到标号为STOP0处的指令时:S

5、P=?AX=?BX=?CF=?SF=?OF=?解:(1)程序执行完标号为SUBRT处的“PUSHBP”指令后,SP=0007H(2)执行完标号为VAAX的MOV指令后,AX=5439H(3)程序执行到标号为STOP0处的指令时(实际执行“HLT”指令之前):SP=0011HAX=99A3HBX=5439H以及以下标志寄存器的内容:CF=0SF=1OF=14-9.自符号地址为MARK开始的内存缓冲区中,存有100个学生的某门课的考试成绩。试找出成绩不低于80分以及成绩低于60分的学生个数,同时求出最高的成

6、绩分及最低的成绩分数,并将它们分别存于符号地址为PST、FST、MAXMK及MINMK的四个单元中。要求写出完整的数据段及代码段。解:DATASEGMENTMARKDB100DUP(?)PSTDW0FSTDW0MAXMKDB0MINMKDB100DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,100MOVBX,OFFSETMARKAGAIN:MOVAL,[BX]CMPAL,MAXMKJCHIGHLMOVMAXMK

7、,AL;updatehighestmarkHIGHL:CMPAL,MINMKJNCMKCHKMOVMINMK,AL;updatelowestmarkMKCHK:CMPAL,60JNCHIGHMKINCFST;increasetheno.ofstudentswhosemark<60JMPCHKFHHIGHMK:CMPAL,80JCCHKFHINCPST;increasetheno.ofstudentswhosemark>=80CHKFH:INCBXLOOPAGAINMOVAX,4C00HINT21HCOD

8、EENDSENDSTART4-10.编写一段程序,接收从键盘输入的10个数(输入回车符后结束),然后将这些数按位取反后存于BUFF开始的缓冲区中。解:DATASEGMENT;数据段BUFFDB10DUP(0);数据区DATAENDSSTACKSEGMENTSTACK‘STACK’;堆栈段DB100DUP(?)STACKENDSCODESEGMENT;代码段ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,D

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

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

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