77范文网 - 专业文章范例文档资料分享平台

汇编语言程序设计课后习题解答宋人杰版(3)

来源:网络收集 时间:2020-05-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

RET

20. 编写程序,把ARRAY1和ARRAY2中20个字节数分别相加,结果放到TABLE中。

(1) 假定数据为无符号数,如果结果大于255则结果为255。 (2) 假定结果为带符号数,如果有溢出则保存结果为0。 答:(1)

DATA SEGMENT

ARRAY1 DB 20 DUP(?) ARRAY2 DB 20 DUP(?) TABLE DB 20 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,20 MOV SI,0

AGAIN:MOV AL,ARRAY1[SI] ADD AL,ARRAY2[SI] JC LABEL1

MOV TABLE[SI],AL JMP LABEL2

LABEL1:MOV TABLE[SI],255 LABEL2:INC SI

LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS

END START

(2)

DATA SEGMENT

ARRAY1 DB 20 DUP(?) ARRAY2 DB 20 DUP(?) TABLE DB 20 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,20 MOV SI,0

AGAIN:MOV AL,ARRAY1[SI] ADD AL,ARRAY2[SI] JO LABEL1

MOV TABLE[SI],AL JMP LABEL2

LABEL1:MOV TABLE[SI],0 LABEL2:INC SI

LOOP AGAIN MOV AH,4CH INT 21H CODE ENDS

END START

21. 字符串ATR1保存着100个字节的ASCII码,试编写一个程序统计该字符串

中空格(20H)的个数。

答: DATA SEGMENT

ATR1 DB 100 DUP(?) DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,100 XOR DI,DI XOR SI,SI

COMP:CMP ATR1[SI],20H INC SI JNE NEXT INC DI NEXT:LOOP COMP MOV AH,4CH INT 21H CODE ENDS END START

第4章 顺序、分支与循环程序设计

1.试编写一个程序实现将从键盘输入的小写字母用大写字母形式显示出来。 答: DATA SEGMENT

STRMESSAGE DB “请输入小写字符”,0DH,0AH,’$’ DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX

MOV DX,OFFSET STRMESSAGE MOV AH,9H INT 21H

MOV AH,1 INT 21H MOV DL,AL SUB DL,20H MOV AH,2 INT 21H EXIT:MOV AH,4CH INT 21H CODE ENDS

END START 2.在内存BUFFER单元中定义有10个16位数,试寻找其中的最大值及最小值,并放在指定的存储单元MAX和MIN中。 答: DATA SEGMENT

BUFFER DW 10 DUP(?) MIN DW ? MAX DW ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX

MOV BX,OFFSET BUFFER MOV AX,[BX] MOV DX,[BX] MOV SI,0 MOV CX,10

MM:MOV DI,[BX+SI] CMP AX,DI JB T1 JMP T2 T1:CMP DX,DI JB T11 JMP T21 T11:MOV DX,DI T21:JMP ENT T2: MOV AX,DI ENT:ADD SI,2 LOOP MM MOV MAX,DX MOV MIN,AX MOV AH,4CH INT 21H CODE ENDS

END START

3.统计字型变量DATBUF中有多少位0,多少位1,并分别记入COUNT0和COUNT1中。

答: DATA SEGMENT

DATBUF DW 1234H COUNT0 DB ? COUNT1 DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV BX,DATBUF AGAIN:CMP BX,0 JE EXIT SHL BX,1 JNC ZERO INC COUNT1 JMP AGAIN ZERO:INC COUNT0 JMP AGAIN EXIT:MOV AH,4CH INT 21H CODE ENDS

END START

4.在BUFFER开始的单元中存放着一个字符串,请判断该字符串中是否存在数字,如有则将X单元置1,否则置0。 答: DATA SEGMENT

BUFFER DB ‘JAVA2COMPUTER’ N=$-BUFFER X DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CLD

MOV CX,N XOR SI,SI

AGAIN:CMP BUFFER[SI],39H JA NEXT CMP AL,30H JB NEXT MOV X,1 JMP EXIT

NEXT:INC SI

LOOP AGAIN MOV X,0 EXIT:MOV AH,4CH INT 21H CODE ENDS

END START

5.设在变量单元A1、A2、A3、A4中存放4个数,试编程实现将最大数保留,其余3个数清零的功能。

答: DATA SEGMENT A1 DB 3 A2 DB 7 A3 DB 9 A4 DB 8 DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,0 MOV CX,3

MOV AL,A1[SI] MOV DI,0 NEXT:INC SI

CMP AL,A1[SI] JNB NEXT1 MOV AL,A1[SI] MOV A1[DI],0 MOV DI,SI JMP NEXT2 NEXT1:MOV A1[SI],0 NEXT2:LOOP NEXT MOV AH,4CH INT 21H CODE ENDS

END START

6.已定义了两个整数变量A和B,试编写程序完成下列功能。

(1) 若两个数中有一个是奇数,则将奇数存入A中,偶数存入B中 (2) 若两个数均为奇数,则将两数均加1后存回原变量。 (3) 若两个数均为偶数,则两个变量均不改变。 答: DATA SEGMENT A DB 13H B DB 24H DATA ENDS

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库汇编语言程序设计课后习题解答宋人杰版(3)在线全文阅读。

汇编语言程序设计课后习题解答宋人杰版(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1025409.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: