云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 微型计算机原理及应用技术-第二版(朱金钧版).

微型计算机原理及应用技术-第二版(朱金钧版).

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 18:39:17

11. 分析下列程序,指出运行结果。

DATA SEGMENT SUM DW ? DATA ENDS CODE SEGMENT

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

MOV DS,AX XOR AX,AX MOV CX,10 MOV BX,2

LP: ADD AX,BX

INC BX INC BX LOOP LP

MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS

END START

请问:

(1) 该程序完成的功能是_______________________________。 (2) 程序执行后,SUM单元的内容是_______________。 【解】

(1) 该程序完成的功能是计算0~20的偶数和。 (2) 程序执行后,SUM单元的内容是110。

12. 从ARRAY开始的单元中存有10个16位无符号数,试编一完整程序找出其中最小数并存入MIN单元。 【解】程序代码如下:

DATA SEGMENT ;数据段开始 ARRAY DW 0F454H,4540H,0D214H,8354H,8210H, 0A673H,5656H,0021H,0567H,4228H MIN DW ? DATA ENDS ;数据段结束 CODE SEGMENT ;代码段开始

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

MOV DS,AX ;装填数据段 LEA BX,ARRAY ;传送变量的地址

MOV AX,[BX] MOV CX,9 LP1: INC BX

INC BX

CMP AX,[BX] JB CONT1 ;AX<[BX],转移

MOV AX,[BX] ;AX>=[BX],AX←[BX] CONT1: LOOP LP1

MOV MIN,AX MOV AH,4CH INT 21H ;返回DOS CODE ENDS ;代码段结束

END START ;源程序结束

13. 从DAT开始的数据区中放有100个8位的无符号数,编程统计其中奇数的个数,将结果存入RESULT单元。 【解】程序代码如下:

DATA SEGMENT ;数据段开始

DAT DB 26,45,44,32,90,2,1,81,2,120,5…… RESULT DB ? DATA ENDS ;数据段结束 CODE SEGMENT ;代码段开始

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

MOV DS,AX ;装填数据段 LEA BX,DAT ;传送变量的地址 XOR AX,AX XOR DX,DX MOV DL,2 MOV CX,100 LP1: MOV AL,[BX]

DIV DL ;余数在AH中 CMP AH,0 JE CONT1

INC DH ;DH用作计数器 CONT1: INC BX

LOOP LP1

MOV RESULT,DH MOV AH,4CH INT 21H ;返回DOS

CODE ENDS ;代码段结束

END START ;源程序结束

14. 利用DOS系统功能调用,将键盘输入的小写字母转换成大写字母输出显示,直到输入“$”字符时停止输出。

【解】调用1号系统功能,键入的字符送AL寄存器,并送屏幕显示输出。调用2号系统功能,将DL寄存器中的内容送屏幕显示输出。程序代码如下:

CODE SEGMENT ;代码段开始

ASSUME CS:CODE START: XOR AX,AX INPU: MOV AH,1

INT 21H ;键盘输入单字符送AL MOV BL,‘$’ CMP AL,BL JE EXT

SUB AL,20H ;转换成大写字母 MOV DL,AL MOV AH,2

INT 21H ;将DL中的字符送屏幕显示 JMP INPU EXT: MOV AH,4CH

INT 21H ;返回DOS

CODE ENDS ;代码段结束 END START ;源程序结束

15. 建立两个过程:一个过程将16进制数变换成ASCII码,一个过程将ASCII码字符在屏幕上显示输出。 【解】程序代码如下:

DATA SEGMENT ;数据段开始

LIST DB ? ;存储一个十六进制数(1位) ASC DB ? ;存储转换的ASCII码 DATA ENDS ;数据段结束 CODE SEGMENT ;代码段开始

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

MOV DS,AX ;装填数据段 CALL CHANGE CALL OUTPTR MOV AH,4CH INT 21H ;返回DOS CHANGE PROC

MOV AL,LIST CMP AL,9

JA NEXT1 ;AL>9,转移 OR AL,30H JMP NEXT2

NEXT1: ADD AL,37H NEXT2: MOV ASC,AL

RET

CHANGE ENDP OUTPTR PROC

MOV DL,ASC MOV AH,2 INT 21H RET

OUTPTR ENDP

CODE ENDS ;代码段结束

END START ;源程序结束

16. 要求编写程序比较两个最大长度为100个字符的字符串ALFA1和ALFA2是否相等,若相等则输出显示“All Right!”,否则输出显示“Error!”。

【解】完成输出显示功能时,调用9号系统功能,功能是将指定的内存缓冲区中的字符串在屏幕上显示出来,缓冲区的字符串以“$”为结束标志。

LEN指定的内存中存储两字符串中长串的长度,否则,即使两串相等,由于字符串后面的随机字符,将影响判断结果。

程序代码如下:

DATA SEGMENT ;数据段开始 ALFA1 DB 100 DUP(?) ALFA2 DB 100 DUP(?)

RESULT1 DB ‘All Right!$’ RESULT2 DB ‘Error!$’

LEN DB 100 ;字符串长度 DATA ENDS ;数据段结束 CODE SEGMENT ;代码段开始

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

MOV DS,AX ;装填数据段 MOV ES,AX ;装填附加段 LEA BX,ALFA1 ;传送源串的地址 MOV SI,BX LEA BX,ALFA2 ;传送目的串的地址

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

11. 分析下列程序,指出运行结果。 DATA SEGMENT SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX XOR AX,AX MOV CX,10 MOV BX,2 LP: ADD AX,BX INC BX INC BX LOOP LP MOV SUM,AX MOV AH,4CH INT 21H CODE ENDS END START 请问: (1) 该程序完成的功能是_______________________________。 (2) 程序执行后,SU

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com