新编汇编语言程序设计四五章习题参考解答.pdf
《新编汇编语言程序设计四五章习题参考解答.pdf》由会员分享,可在线阅读,更多相关《新编汇编语言程序设计四五章习题参考解答.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!习题四 4.5 已知(AX)=836BH,X 分别取下列值,执行“CMP AX,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=0001 4.7 测试名为 X 的一个字节,如果 X 的第 1,3 位均为 1,转移到 L1
2、,如果只有一位为 1,转移到 L2,如果两位全为 0,转移到 L3。写出对应的指令序列。答:MOV AL,X AND AL,0000 1010B JZ L3 CMP AL,0000 1010B JE L1 JMP L2 4.12 计算分段函数:2653XXY 3322XXX X 的值从键盘输入,Y 的值送显示器输出。答:INCLUDE YLIB.H DATA SEGEMNT MESS1 DB 0DH,0AH,Input value of X please:$MESS2 DB 0DH,0AH,Y=:$DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ST
3、ART:MOV AX,DATA MOV DS,AX LEA DX,MESS1 CALL READINT;输入 X 的值 CMP AX,-2 JGE L2 L1:SUB AX,3 ;AXX-3 JMP DONE L2:CMP AX,3 JG L3 MOV BX,AX ADD AX,AX ;AX2X ADD AX,AX ;AX4X ADD AX,BX ;AX5X ADD AX,6 ;AX5X+6 JMP DONE L3:MOV AX,2 ;AX2 DONE:欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!LEA DX,MESS2 CALL WRITEI
4、NT;输出 Y 的值 CALL CRLF MOV AX,4C00H INT 21H CODE ENDS END START 4.14 编写程序,求 10 元素字数组 LIST 中绝对值最小的数,存入 MIN 单元。答:DATA SEGEMNT LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18 MIN DW?MINABS DW?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AX,LIST MOV MIN,AX ;将数组第一个元素假设为绝对值最小的数
5、MOV MINABS,32767;最小的绝对值假设为 32767 LEA SI,LIST MOV CX,10 AGAIN:MOV AX,SI CMP AX,0 JGE SKIP1 NEG AX ;求绝对值 SKIP1:CMP AX,MINABS ;绝对值与假设的最小绝对值比较 JGE SKIP2 ;假设的绝对值较小,跳过 MOV MINABS,AX ;保存新的最小绝对值 MOV AX,SI ;取出新的绝对值最小的数 MOV MIN,AX ;保留新的绝对值最小的数 SKIP2:ADD SI,2 LOOP AGAIN MOV AX,4C00H INT 21H CODE ENDS END START
6、 说明:一定要预设最小的绝对值和绝对值最小的数,而且这个绝对值最小的数必须来自 LIST 数组。4.16 一个有符号字数组以 0 为结束标志,求这个数组的:最大值、最小值、平均值。答:DATA SEGEMNT LIST DW -56,+12,88,-126,-5,16,32,-99,72,-18,0 MIN DW?MAX DW?AVG DW?DATA ENDS 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV MIN
7、,32767 ;将 32767 假设为最小的数 MOV MAX,-32768 ;将-32768 假设为最大的数 MOV AVG,0 ;AVG 用作累加器,清零 LEA SI,LIST MOV CX,0 AGAIN:MOV AX,SI CMP AX,0 JZ DONE ;找到零元素,转 DONE 结束处理 INC CX ;纪录非零元素个数 ADD AVG,AX ;累加 CMP AX,MIN JGE SKIP1 MOV MIN.AX ;比预设最小值还小,保留 SKIP1:CMP AX,MAX JLE SKIP2 MOV MAX,AX ;比预设最大值还大,保留 SKIP2:ADD SI,2 JMP
8、AGAIN DONE:JCXZ NULL ;元素个数为零,转 NULL 处理 MOV AX,AVG CWD IDIV CX MOV AVG,AX ;计算平均值 JMP EXIT NULL:MOV MIN,0 ;元素个数为 0,将“最大值”、“最小值”MOV MAX,0 ;“平均值”清零 MOV AVG,0 EXIT:MOV AX,4C00H INT 21H CODE ENDS END START 4.21 编写程序,把一个 30 个元素的有符号字数组 ARRAY 按照各元素的正负分别送入数组 P 和 M,正数和零元素送 P 数组,负数送 M 数组。答:DATA SEGEMNT ARRAY DW
9、 30 DUP(?);汇编之前置入数据 P DW 30 DUP(?)M DW 30 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!MOV DS,AX LEA BX,ARRAY ;ARRAY 数组指针 MOV SI,0 ;P 数组指针 MOV DI,0 ;M 数组指针 MOV CX,30 ONE:MOV AX,BX ;从 ARRAY 数组取出一个数据 AND AX,AL JGE PLUS ;正数、零转 PLUS
10、 MINUS:MOV MDI,AX ;负数存入 M 数组 ADD DI,2 JMP NEXT PLUS:MOV PSI,AX ;正数、零存入 P 数组 ADD SI,2 NEXT:ADD BX,2 LOOP ONE MOV AX,4C00H INT 21H CODE ENDS END START 4.30 编写程序,输入 N,计算:S=1*2+2*3+(N-1)*N 答:INCLUDE YLIB.H CODE SEGMENT ASSUME CS:CODE MESS1 DB 0DH,0AH,Input N please:$MESS2 DB 0DH,0AH,S=$START:PUSH CS POP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新编 汇编语言 程序设计 四五 习题 参考 解答
限制150内