微机原理习 题 3.doc

上传人:飞****9 文档编号:133702827 上传时间:2020-05-29 格式:DOC 页数:16 大小:55.50KB
返回 下载 相关 举报
微机原理习 题 3.doc_第1页
第1页 / 共16页
微机原理习 题 3.doc_第2页
第2页 / 共16页
微机原理习 题 3.doc_第3页
第3页 / 共16页
微机原理习 题 3.doc_第4页
第4页 / 共16页
微机原理习 题 3.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《微机原理习 题 3.doc》由会员分享,可在线阅读,更多相关《微机原理习 题 3.doc(16页珍藏版)》请在金锄头文库上搜索。

1、习 题 33.1 在以Block为首地址的字节单元中,存放了一个班级的学生考试成绩。试编写一程序,利用学生的序号来查表得到该学生的成绩,设学生的序号在NUMBER单元,查表结果存入RESULT单元。解:DSEG SEGMENTBLOCKDB 67,78,86,57,88,75,78,96,77,88,87,95,67,86,83,55NUMBER DB 9 ; 要显示的16进制数字RESULT DB ? ; 存放要显示数字对应的七段码DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS:DSEGSTART :MOV AX, DSEGMOV DS, AXMOV BX,

2、 OFFSET BLOCKMOV AL, NUMBER; 取16进制数字AND AL, 0FHXLAT; 查表取得对应的七段码MOV RESULT, AL ; 保存MOV AX, 4C00HINT 21HCSEG ENDSEND START3.2 试编程序,统计由52600H开始的100个单元中所存放的字符“A“的个数,并将结果存放在DX中。解:CSEG SEGMENTASSUME CS: CSEGSTART :MOV AX, 5260HMOV DS, AXMOV BX, 0MOV AL, AMOV CX,100MOV DX,0AGA:CMP AL,BXJNZ LPINCDXLP:INC BX

3、LOOP AGAMOV AX, 4C00HINT 21HCSEG ENDSEND START3.3 在当前数据段(DS),偏移地址为GRADE开始的连续80个单元中,存放着某班80个同学某门考试成绩。按要求编写程序:试编写程序统计90分;80分89分;70分79分;60分69分,60分的人数各为多少,并将结果放在同一数据段、偏移地址为LEVEL开始的连续单元中。试编写程序,求该班这门课的平均成绩为多少,并放在该数据段的AVER单元中。解:DATASEGMENTGRADEDB80 DUP(?);运行前置入具体数据LEVELDB0 ;大于90LEVEL1DB0;80分89分LEVEL2DB0;70

4、分79分LEVEL3DB0;60分69分 LEVEL4DB0;60分AVERDB ?DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXLEASI, GRADEMOVDX,0MOVCX, 80AGAIN:MOVAL, SICMPAL, 59;分段测试JAL1 L0:INCLEVEL4JMPNEXTL1:CMPAL, 69JAL2INCLEVEL3JMPNEXTL2:CMPAL, 79JAL3INCLEVEL2JMPNEXTL3:CMPAL, 89JAL4INCLEVEL1JMPNEXTL4:INCLEVELN

5、EXT:ADDSI, 1ADD DL,AL;求累加和ADC DH,0LOOPAGAINMOV AX,DXMOV BL,80DIVBLMOV AVER,ALEXIT:MOVAX, 4C00HINT21HCODEENDSENDSTART3.4 在以字节变量ARRAY为首地址的内存区域存储了一组带符号的数据,试编写程序将数据组的所有正数相加,并将和送入SUM字单元。解:DATASEGMENTARRAYDB 12,-67,44,67,-35,66,55,-98,87,-87,33,83COUNTEQU $-ARRAYSUMDW? ;SUM存放累加和DATAENDSCODESEGMENTASSUMEDS

6、: DATA, CS: CODESTART:MOVAX, DATAMOVDS, AXMOVBX, 0;BX是数组元素在数组内的位移,初值0MOVCX, COUNT;装载循环计数器的初始值MOVDX, 0;累加器AX清零ONE:MOVAL,ARRAYBXCMP AL,0JLE NEXTCBW ADDDX,AX;NEXT:INCBX;修改BX的值,为下一次操作做准备LOOPONE;计数循环MOVSUM, DX;保存结果(累加和)MOVAX, 4C00HINT21HCODEENDSENDSTART3.5 若某班有50名学生,考汇编语言课程,且所有考生的成绩都已存放自XX单元开始的内存区中,试编写一程

7、序找出最高分和最低分。解:DATASEGMENTXXDB50 DUP (?);运行前置入具体数据COUNTEQU $-XXMINDB?MAXDB?DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXMOVMIN, 100;假设最小的数MOVMAX, 0;假设最大的数LEASI, XXMOVCX, COUNTAGAIN:MOVAL, SICMPAL, MINJAESKIP1MOVMIN, AL;比预设最小值还小,保留SKIP1:CMPAL, MAXJBESKIP2 MOVMAX, AL;比预设最大值还大,保留S

8、KIP2:INC SILOOP AGAINEXIT:MOVAX, 4C00HINT21HCODEENDSENDSTART3.6 在首地址为ARRAY为首地址的内存区域里,存放了一组带符号的数据,试编写程序分别统计零、正数和负数的个数,统计结果分别存放在ZZ、XX、YY中。解:DATASEGMENTARRAYDB56,-42,66,87,0,88,-88,68,0,-67,58,97,-66,86,77;运行前置入具体数据COUNTEQU $-ARRAYXXDB0 ;正数的个数YYDB0;0的个数ZZDB0;负数的个数DATAENDSCODESEGMENTASSUMECS: CODE, DS:

9、DATASTART:MOVAX, DATAMOVDS, AXLEASI, ARRAYMOVCX, COUNTAGAIN:MOVAL, SICMPAL, 0;分段测试JGEL1 L0:INCZZJMPNEXTL1:JGL2INCYYJMPNEXTL2:INCXXNEXT:ADDSI, 1LOOPAGAINEXIT:MOVAX, 4C00HINT21HCODEENDSENDSTART3.7 设有一个管理软件可接受十个键盘命令(分别是A、B、C,.,J),执行这十个命令的程序入口地址分别是PROCA、PROCB、PROCC,.,PROCJ。编写一程序从键盘上接收命令,并转去执行相应的程序。要求分别用

10、以下两种方式来实现:(1)用比较转移指令(2)用地址表法解:(1)DATASEGMENTPROMPTDB0DH, 0AH, INPUT A CHAR (AJ): $MSGADB0DH, 0AH, FUNCTION A EXECUTED . $MSGBDB0DH, 0AH, FUNCTION B EXECUTED . $MSGCDB0DH, 0AH, FUNCTION C EXECUTED . $MSGDDB0DH, 0AH, FUNCTION D EXECUTED . $MSGEDB0DH, 0AH, FUNCTION E EXECUTED . $MSGFDB0DH, 0AH, FUNCTIO

11、N F EXECUTED . $MSGGDB0DH, 0AH, FUNCTION G EXECUTED . $MSGHDB0DH, 0AH, FUNCTION H EXECUTED . $MSGIDB0DH, 0AH, FUNCTION I EXECUTED . $MSGJDB0DH, 0AH, FUNCTION J EXECUTED . $DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXINPUT:LEADX, PROMPTMOVAH, 9INT21H;输出提示信息MOVAH, 1INT21H;输入一个数字; * 开始测试条件*CMPAL, AJBINPUT;不在AJ内,重新输入JEFA;字符A,转FACMPAL, BJEFB;字符B,转FBCMPAL, CJEFC;字符C,转FCCMPAL, DJEFD;字符D,转FDCMPAL, EJEFE;字符E,转FECMPAL, FJEFF;字符F,转FFCMPAL, GJEFG;字符G,转FGCMPAL, HJEFH;字符H,转FHCMPAL, IJEFI;字符I,转FICMPAL, JJEFJ;字符J,转FJJMP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号