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

北京理工大学汇编实验报告3

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

MOV DL,0AH ;输出回车、换行 MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H

LEA DX,BUF2 ;输入字符串BUF2 MOV AH,0AH INT 21H

MOV AX,0 LEA DI,BUF1 LEA SI,BUF2 CLD

MOV CX,COUNT1 REPZ CMPSB

JNZ L1 ;BUF1和BUF2不同,跳转至L1 L2: MOV AL,0H JMP EXID L1: MOV AL,1H

EXID:

MOV BL,AL

MOV DL,0AH ;输出回车、换行 MOV AH,02H INT 21H MOV DL,0DH MOV AH,02H INT 21H

ADD BL,30H ;将AL中的内容输出 MOV DL,BL MOV AH,02H INT 21H MOV AH,4CH INT 21H CODES ENDS END START

程序分析:本程序的难点在于从键盘输入两字符串BUF1、BUF2。为了成功输入,要在两次输入之间加上输出回车、换行。初始化BUF1、BUF2内存区域时,应设置相同的空间大小便于后续比较BUF1、BUF2中的字符。利用0A号功能进行输入字符串时,要注意初始化时的固定格式。输入前应将字符串有效地址放入DX中。利用串操作指令CMPSB逐个比较DS:SI和ES:DI中的字符。利用CLD指令可以方便地使SI、DI在每次串操作指令后递增。输出AL中的内容0、1时应先将其转换成ASCII码30H、31H再输出。 框图:

开始

N 相同且CX不为0? Y SI、DI加一,CX减一 比较DS:SI和ES:DI中字符

循环次数CX设为字符串长度 输入BUF1、BUF2字符串,设置SI、DI 初始化BUF1,BUF2内存单元

Y AL=0 AL=1 ZF=1? N

(2)

DATAS SEGMENT

BUF DB '12345678912345$' BUF2 DB 20 DUP('$') DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS,ES:DATAS START:

MOV AX,DATAS MOV DS,AX MOV ES,AX LEA BX,BUF LEA SI,BUF

结束

LEA DI,BUF2 CLD REPNZ CMPSB MOV AX,SI

SUB AX,BX ;计算BUF长度

MOV DX,0 ;将AX中的内容转为10进制输出 MOV BX,10000 DIV BX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,02H INT 21H

MOV AX,BX MOV BX,1000 MOV DX,0 DIV BX MOV BX,DX MOV DL,AL ADD DL,30H MOV AH,02H INT 21H

搜索更多关于: 北京理工大学汇编实验报告3 的文档
北京理工大学汇编实验报告3.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c03k4e89esa6k2tg1xudp48fsc2a7k200rjg_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top