教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

计算机硬件课程设计实验报告(2)

来源:网络收集 时间:2026-08-07
导读: INT 21H MOV CL,[ELEM+1] LEA DI,ELEM+2 PUSH BX PUSH SI CALL CALCULATION POP SI POP BX MOV AL,BYTE PTR[W] MOV MEM[SI],AL INC SI DEC BL JNZ NEXT0 LEA SI,MEM MOV DI,1000H MOV CL,10 CLD REP MOVSB MOV BL,9

INT 21H

MOV CL,[ELEM+1] LEA DI,ELEM+2 PUSH BX PUSH SI

CALL CALCULATION POP SI POP BX

MOV AL,BYTE PTR[W] MOV MEM[SI],AL INC SI DEC BL JNZ NEXT0

LEA SI,MEM MOV DI,1000H MOV CL,10 CLD

REP MOVSB

MOV BL,9

NEXT1: MOV SI,1000H MOV CL,BL

NEXT2: MOV AL,ES:[SI] INC SI

CMP AL,ES:[SI] JC NEXT3

MOV DL,ES:[SI] MOV ES:[SI-1],DL MOV ES:[SI],AL

NEXT3: DEC CL JNZ NEXT2

DEC BL JNZ NEXT1

MOV AH,4CH INT 21H

CALCULATION PROC NEAR

PUSH CX

DEC CX

LEA SI,ELEM+1 TT1: INC SI OR CX,0H JNZ TT2 POP CX JMP L0

TT2: DEC CX

JMP TT1

L0: MOV AX,0 MOV W,AX MOV AX,1 L1: PUSH AX MOV DH,30H MOV BX,10 MOV DL,[SI] SUB DL,DH XOR DH,DH MUL DX ADD W,AX POP AX MUL BX DEC SI LOOP L1 RET

CALCULATION ENDP

CSEG ENDS END START

七、程序运行结果及预测

八、结果评述与总结

这次实践课程的结果还是令人比较满意的,我们在这次实践课程中重新温习了比较指令与相关DOS指令的定义与运用,通过小组讨论与老师的指导,成功的运用了汇编程序进行编程。首先我们先完成了最基础的字符串匹配程序,当中我们还考虑到了不仅要判断字符串的内容是否一致,还要考虑到两个字符串的长短是否是一样的。根据这个思路我们设计出了第一个版本的程序,但是之后在改进程序的过程中我们又想到了除了可以进行字符串的比较是否匹配,是不是也可以设计程序告诉用户,假使两个字符串不匹配,到底从哪个字符开始不匹配的。思路出来之后,问题也出现了,如何去实现这个功能?我们想过许多办法,比如创建堆栈之类的来实现,也去网上查过资料、同别的组讨论过。最后决定使用定义一个变量然后调用DOS功能调用来实现,具体方法是首先定义一个变量D8赋值为0,然后在COMPARE1中,每一次比较前都执行一次“INC D8”指令,一旦程序发现两个字符不匹配时,跳转到NOMATCH1后,程序就会把D8中的内容移到AH中并执行DOS 9号功能输出出来给用户。经过了几次试验之后终于成功的输出了我们想要得到的结果。最后的我们汇编出的程序就有了以下的功能:在长度不一的不匹配情况,以及长度相同时的匹配和不匹配情况下分别进行判断,并且在不匹配的时候告知用户是从第几位开始出现不匹配情况。对于这个实践结果我们还是感到很满意的。

计算机硬件课程设计实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443290.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)