文档详情

微机(杨文璐版)第五章部分答案.docx

发布:2017-06-18约1.13千字共3页下载文档
文本预览下载声明
第五章作业参考答案8 写出完成下列功能的指令序列:(1)从键盘中接收一个字符;(2)在显示器上显示一个字符D;(3)按收一个字符串并放在INPUTBUF开始的数据区;(4)从键盘上接收一个小写字母,并转换成大写字母。参考答案:(1)MOV AH,1; INT 21H(2)MOV AH,2; MOV DL,D; INT 21H(3)MOV AH,10; LEA DX,INPUTBUF; INT 21H(4)MOV AH,1;INT 21H; SUB AL,20H10.设a,b,c 均为无符号字节数据,编程计算y=(a+b)*c参考答案:D_SEG SEGMENTadb ?bdb ?cdb ?ydw ?D_SEG ENDSC_SEGSEGMENTASSUMECS:C_SEG,DS:D_SEGSTART:MOV AX,D_SEGMOV DS,AXMOV AL,aADD AL,bMOV BL,cMUL BLMOV Y,AXC_SEGENDSENDSTART11.编程计算无符号字节数之和。无符号字节数的长度及其所求的和都存放在存储器的数据段中。无符号字节数串从NUM单元字节开始存放,长度存放在COUNT单元,和存放在SUM单元。假设和数小于256。参考答案:D_SEG SEGMENTNUM DB 10 DUP(?)COUNT DB $-NUMSUM DB 0D_SEG ENDSC_SEGSEGMENTASSUMECS:C_SEG,DS:D_SEGSTART:MOV AX,D_SEGMOV DS,AXLEA SI,NUMMOV CX,COUNTXOR AL,ALCLC;清CFAGAIN:ADD AL,[SI];和小于256,只用ADD即可。INC SILOOP AGAINMOV SUM, AL MOV AX,4C00HINT 21HC_SEGENDSEND START20. 编写一子程序,完成将NUM单元中16位二进制数以十六进制形式显示在当前光标处。参考答案:HEX2ASC PROC NEARMOV CL, 12ROR AX, CL;最高四位移到最低四位MOV BX, AX;BX暂存MOV CH, 4H2ALOOP:AND AL, 0FH;取最低四位转化成ASCII码显示CMP AL, 0AH;0-9:30H-39HJBNEXT;A-F:41H-46HADD AL, 7NEXT:ADD AL, 30HMOV DL, AL;显示一个字符MOV AH, 2INT 21HMOV CL, 4;左移四位,第二个十六进制数ROL BX, CL;再取四位MOV AX, BXDEC CHJNZ H2ALOOPRETHEX2ASCENDP
显示全部
相似文档