新编汇编语言知识程序设计四五章习题集参考总结解答.doc





《新编汇编语言知识程序设计四五章习题集参考总结解答.doc》由会员分享,可在线阅读,更多相关《新编汇编语言知识程序设计四五章习题集参考总结解答.doc(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#+习题四4.5 已知(AX)= 836BH,X分别取下列值,执行“CMPAX, X”后,标志位ZF、CF、OF、SF各是什么?(1)X=3000H(2)X=8000H(3)X=7FFFFH(4)X=0FFFFH(5)X=0答:上述指令执行后,标志位ZF、CF、OF、SF 的状态分别是: (1) ZCOS=0010 (2) ZCOS=0000 (3) ZCOS=0010 (4) ZCOS=0101 (5) ZCOS=00014.7 测试名为X的一个字节,如果X的第1,3位均为1,转移到L1,如果只有一位为1,转移到L2,如果两位全为0,转移到L3。写出对应的指令序列。答:MOVAL, XAND
2、AL, 0000 1010BJZL3CMPAL, 0000 1010BJEL1JMPL24.12 计算分段函数: X的值从键盘输入,Y的值送显示器输出。答:INCLUDEYLIB.HDATASEGEMNTMESS1DB0DH, 0AH, Input value of X please : $MESS2DB0DH, 0AH, Y= : $DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXLEADX, MESS1CALLREADINT;输入X的值CMPAX, -2JGEL2L1:SUBAX, 3;AXX-3JM
3、PDONEL2:CMPAX, 3JGL3MOVBX, AXADDAX, AX;AX2XADDAX, AX;AX4XADDAX, BX;AX5XADDAX, 6;AX5X+6JMPDONEL3:MOVAX, 2;AX2DONE:LEADX, MESS2CALLWRITEINT;输出Y的值CALLCRLFMOVAX, 4C00HINT21HCODEENDSENDSTART4.14 编写程序,求10元素字数组LIST中绝对值最小的数,存入MIN单元。答:DATASEGEMNTLISTDW-56, +12, 88, -126, -5, 16, 32, -99, 72, -18MINDW?MINABSD
4、W?DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXMOVAX, LISTMOVMIN, AX;将数组第一个元素假设为绝对值最小的数MOVMINABS, 32767;最小的绝对值假设为32767LEASI, LISTMOVCX, 10AGAIN:MOVAX, SICMPAX, 0JGESKIP1NEGAX;求绝对值SKIP1:CMPAX, MINABS;绝对值与假设的最小绝对值比较JGESKIP2;假设的绝对值较小,跳过MOVMINABS, AX;保存新的最小绝对值MOVAX, SI;取出新的绝对值最小的
5、数MOVMIN, AX;保留新的绝对值最小的数SKIP2:ADDSI, 2LOOPAGAINMOVAX, 4C00HINT21HCODEENDSENDSTART说明:一定要预设最小的绝对值和绝对值最小的数,而且这个绝对值最小的数必须来自LIST数组。4.16 一个有符号字数组以0为结束标志,求这个数组的:最大值、最小值、平均值。答:DATASEGEMNTLISTDW-56, +12, 88, -126, -5, 16, 32, -99, 72, -18, 0MINDW?MAXDW?AVGDW?DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MO
6、VAX, DATAMOVDS, AXMOVMIN, 32767;将32767假设为最小的数MOVMAX, -32768;将-32768假设为最大的数MOVAVG, 0;AVG用作累加器,清零LEASI, LISTMOVCX, 0AGAIN:MOVAX, SICMPAX, 0JZDONE;找到零元素,转DONE结束处理INCCX;纪录非零元素个数ADDAVG, AX;累加CMPAX, MINJGESKIP1MOVMIN. AX;比预设最小值还小,保留SKIP1:CMPAX, MAXJLESKIP2 MOVMAX, AX;比预设最大值还大,保留SKIP2:ADDSI, 2JMPAGAINDONE:
7、JCXZNULL;元素个数为零,转NULL处理MOVAX, AVGCWDIDIVCXMOVAVG, AX;计算平均值JMPEXIT NULL:MOVMIN, 0;元素个数为0,将“最大值”、“最小值”MOVMAX, 0;“平均值”清零MOVAVG, 0EXIT:MOVAX, 4C00HINT21HCODEENDSENDSTART4.21编写程序,把一个30个元素的有符号字数组ARRAY按照各元素的正负分别送入数组P和M,正数和零元素送P数组,负数送M数组。答:DATASEGEMNTARRAYDW30 DUP(?);汇编之前置入数据PDW30 DUP(?)MDW30 DUP(?)DATAENDS
8、CODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX, DATAMOVDS, AXLEABX, ARRAY;ARRAY数组指针MOVSI, 0;P数组指针MOVDI, 0 ;M数组指针MOVCX, 30ONE:MOVAX, BX;从ARRAY数组取出一个数据ANDAX, ALJGEPLUS;正数、零转PLUSMINUS:MOVMDI, AX;负数存入M数组ADDDI, 2JMPNEXTPLUS:MOVPSI, AX;正数、零存入P数组ADDSI, 2NEXT:ADDBX, 2 LOOPONEMOVAX, 4C00HINT21HCODEENDSENDSTA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 汇编语言 知识 程序设计 四五 习题集 参考 总结 解答

限制150内