ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:46.50KB ,
资源ID:1422788      下载积分:5 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1422788.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言第七章答案.doc)为本站会员(h****)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

汇编语言第七章答案.doc

1、7.1 编写一条宏指令 CLRB,完成用空格符将一字符区中的字符取代的工作。字符区首地址及其长度为变元。答:宏定义如下:CLRB MACRO N, CFILMOV CX, NCLDMOV AL, ;取空格符的 ASCII 码LEA DI, CFILREP STOSBENDM7.2 某工厂计算周工资的方法是每小时的工资率 RATE 乘以工作时间 HOUR,另外每工作满10小时加奖金3元,工资总数存放在 WAG 中。请将周工资的计算编写成一条宏指令WAGES,并展开宏调用:WAGES R1, 42, SUM答:宏定义如下:WAGES MACRO RATE, HOUR, WAGMOV AL, HOU

2、R ;计算周工资(WAG),公式为:HOUR* RATEMOV BL, RATEMUL BLMOV WAG, AXMOV AL, HOUR ;计算奖金存入(AX),公式为:HOUR/10的商*3MOV AH, 0MOV BL, 10DIV BLMOV BL, 3MUL BLADD WAG, AX ;计算周工资总数ENDM宏调用:WAGES R1, 42, SUM宏展开:1 MOV AL, 421 MOV BL, R11 MUL BL1 MOV SUM, AX1 MOV AL, 421 MOV AH, 01 MOV BL, 101 DIV BL1 MOV BL, 31 MUL BL1 ADD S

3、UM, AX7.3 给定宏定义如下:(注意:此宏指令的功能是 V3|V1-V2|)DIF MACRO X, YMOV AX, XSUB AX, YENDMABSDIF MACRO V1, V2, V3LOCAL CONTPUSH AXDIF V1, V2CMP AX, 0JGE CONTNEG AXCONT: MOV V3, AXPOP AXENDM试展开以下调用,并判定调用是否有效。(1) ABSDIF P1, P2, DISTANCE(2) ABSDIF BX, SI, XDI, CX(3) ABSDIF BXSI, XBXSI, 240H(4) ABSDIF AX, AX, AX答:(1

4、) 宏调用 ABSDIF P1, P2, DISTANCE 的宏展开如下:此宏调用有效。1 PUSH AX1 DIF P1, P21 MOV AX, P11 SUB AX, P21 CMP AX, 01 JGE ?00001 NEG AX1 ?0000: MOV DISTANCE, AX1 POP AX(2) 宏调用 ABSDIF BX, SI, XDI, CX 的宏展开如下:此宏调用有效。1 PUSH AX1 DIF BX, SI1 MOV AX, BX1 SUB AX, SI1 CMP AX, 01 JGE ?00011 NEG AX1 ?0001: MOV XDI, AX1 POP AX

5、(3) 宏调用 ABSDIF BXSI, XBXSI, 240H 的宏展开如下:此宏调用无效。1 PUSH AX1 DIF BXSI, XBXSI1 MOV AX, BXSI1 SUB AX, XBXSI1 CMP AX, 01 JGE ?00021 NEG AX1 ?0002: MOV 240H, AX1 POP AX(4) 宏调用 ABSDIF AX, AX, AX 的宏展开如下:此宏调用有效但无多大意义。1 PUSH AX1 DIF AX, AX1 MOV AX, AX1 SUB AX, AX1 CMP AX, 01 JGE ?00031 NEG AX1 ?0003: MOV AX, A

6、X1 POP AX7.4 试编制宏定义,要求把存储器中的一个用 EOT(ASCII 码04H )字符结尾的字符串传送到另一个存储区去。答:宏定义如下:SEND MACRO SCHARS, DCHARSLOCAL NEXT, EXITPUSH AXPUSH SIMOV SI, 0NEXT: MOV AL, SCHARSSIMOV DCHARSSI, ALCMP AL, 04H ;是 EOT 字符吗?JZ EXITINC SIJMP NEXTEXIT: POP SIPOP AXENDM7.5 宏指令 BIN_SUB 完成多个字节数据连减的功能:RESULT(A-B-C-D-)要相减的字节数据顺序存

7、放在首地址为 OPERAND 的数据区中,减数的个数存放在COUNT 单元中,最后结果存入 RESULT 单元。请编写此宏指令。答:宏定义如下:BIN_SUB MACRO RESULT, A, OPERAND, COUNTLOCAL NEXT_SUBPUSH CXPUSH BXPUSH AXMOV CX, COUNTMOV AL, ALEA BX, OPERANDCLCNEXT_SUB: SBB AL, BXINC BXLOOP NEXT_SUBMOV RESULT, ALPOP AXPOP BXPOP CXENDM7.6 请用宏指令定义一个可显示字符串 GOOD: GOOD STUDENTS

8、: CLASSX NAME,其中 X 和 NAME 在宏调用时给出。答:宏定义如下:DISP_GOOD MACRO X, NAMEGOOD DB GOOD STUDENTS: CLASS&X &NAME, 0DH, 0AH, $ENDM7.7 下面的宏指令 CNT 和 INC1完成相继字存储。CNT MACRO A, BA&B DW ?ENDMINC1 MACRO A, BCNT A, %BB=B+1ENDM请展开下列宏调用:C=0INC1 DATA, CINC1 DATA, C答:宏展开如下:C=0INC1 DATA, C1 DATA0 DW ?INC1 DATA, C1 DATA0 DW

9、? (注意:C 为0没有变)7.8 定义宏指令并展开宏调用。宏指令 JOE 把一串信息MESSAGE NO. K存入数据存储区XK 中。宏调用为:I=0JOE TEXT, IJOE TEXT, IJOE TEXT, I答:宏定义如下:MARY MACRO X, KX&K DB MESSAGE NO. &KENDMJOE MACRO A, IMARY A, %II=I+1ENDM宏调用和宏展开:I=0JOE TEXT, I1 TEXT0 DB MESSAGE NO. 0JOE TEXT, I1 TEXT1 DB MESSAGE NO. 1JOE TEXT, I1 TEXT2 DB MESSAGE

10、 NO. 27.9 宏指令 STORE 定义如下:STORE MACRO X, NMOV X+I, II=I+1IF I-NSTORE X, NENDIFENDM试展开下列宏调用:I=0STORE TAB, 7答:宏展开如下:I=0STORE TAB, 71 MOV TAB+0, 01 MOV TAB+1, 11 MOV TAB+2, 21 MOV TAB+3, 31 MOV TAB+4, 41 MOV TAB+5, 51 MOV TAB+6, 67.10 试编写非递归的宏指令,使其完成的工作与7.9题的 STORE 相同。答:宏定义如下:STORE MACRO KMOV TAB+K, KEN

11、DM宏调用:I=0REPT 7STORE %II=I+1ENDM7.11 试编写一段程序完成以下功能,如给定名为 X 的字符串长度大于5时,下列指令将汇编10次。ADD AX, AX答:程序段如下:X DB ABCDEFGIF ($-X) GT 5REPT 10ADD AX, AXENDMENDIF7.12 定义宏指令 FINSUM:比较两个数 X 和 Y(X、Y 为数,而不是地址),若 XY 则执行SUMX+2*Y;否则执行 SUM2*X+Y。答:宏定义如下:CALCULATE MACRO A, B, RESULT ;计算 RESULT2*A+BMOV AX, ASHL AX, 1ADD A

12、X, BMOV RESULT, AXENDMFINSUM MACRO X, Y, SUMIF X GT YCALCULATE Y, X, SUMELSECALCULATE X, Y, SUMENDIFENDM7.13 试编写一段程序完成以下功能:如变元 X=VT55,则汇编 MOV TERMINAL, 0;否则汇编MOV TERMINAL, 1。答:宏定义如下:BRANCH MACRO XIFIDN , MOV TERMINAL, 0ELSEMOV TERMINAL, 1ENDIFENDM7.14 对于 DOS 功能调用,所有的功能调用都需要在 AH 寄存器中存放功能码,而其中有一些功能需要在

13、 DX 中放一个值。试定义宏指令 DOS21,要求只有在程序中定义了缓冲区时,汇编为:MOV AH, DOSFUNCMOV DX, OFFSET BUFFINT 21H否则,无 MOV DX, OFFSET BUFF 指令。并展开以下宏调用:DOS21 01DOS21 0AH, IPFIELD答:宏定义如下:DOS21 MACRO DOSFUNC, BUFFMOV AH, DOSFUNCIFDEF BUFFMOV DX, OFFSET BUFFENDIFINT 21HENDM宏展开:DOS21 011 MOV AH, 011 INT 21HDOS21 0AH, IPFIELD1 MOV AH,

14、 0AH1 MOV DX, OFFSET IPFIELD1 INT 21H7.15 编写一段程序,使汇编程序根据 SIGN 中的内容分别产生不同的指令。如果(SIGN)=0,则用字节变量 DIVD 中的无符号数除以字节变量 SCALE;如果(SIGN)=1,则用字节变量 DIVD 中的带符号数除以字节变量 SCALE,结果都存放在字节变量 RESULT 中。答:程序段如下:MOV AL, DIVDIF SIGNMOV AH, 0DIV SCALEELSECBWIDIV SCALEENDIFMOV RESULT, AL7.16 试编写宏定义 SUMMING,要求求出双字数组中所有元素之和,并把结

15、果保存下来。该宏定义的哑元应为数组首址 ARRAY,数组长度 COUNT 和结果存放单元 RESULT。答:宏定义如下:SUMMING MACRO ARRAY,COUNT,RESULTLOCAL ADDITIONMOV ESI, 0MOV ECX, COUNTADDITION: MOV EAX, ARRAYESI*4 ;双字为4字节ADD RESULT, EAXADC RESULT+4, 0 ;将进位加到结果的高位双字中INC ESILOOP ADDITIONENDM7.17 为下列数据段中的数组编制一程序,调用题7.16的宏定义 SUMMING,求出该数组中各元素之和。DATA DD 101

16、246,274365,843250,475536SUM DQ ?答:程序如下:SUMMING MACRO ARRAY,COUNT,RESULTLOCAL ADDITIONMOV ESI, 0MOV ECX, COUNTADDITION: MOV EAX, ARRAYESI*4 ;双字为4字节ADD RESULT, EAXADC RESULT+4, 0 ;将进位加到结果的高位双字中INC ESILOOP ADDITIONENDM.MODEL SMALL.386.DATADATA DD 101246,274365,843250,475536SUM DQ ?.CODESTART: MOV AX, DATAMOV DS, AXSUMMING DATA, 4, SUMMOV AX, 4C00HINT 21HEND START7.18 如把题7.16中的宏定义存放在一个宏库中,则题7.17的程序应如何修改?答:程序修改如下:INCLUDE MACRO.MAC ;假设存放的宏库名为 MACRO.MAC.MODEL SMALL.386.DATADATA DD 101246,274365,843250,475536SUM DQ ?.CODESTART: MOV AX, DATAMOV DS, AXSUMMING DATA, 4, SUMMOV AX, 4C00HINT 21HEND START

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。