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

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

来源:用户分享 时间:2025/5/15 14:44:38 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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 ;传送目的串的地址

微型计算机原理及应用技术-第二版(朱金钧版)..doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4l1l14y71y6d7jn4l8uv58u602x7bw012lt_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top