福建农林大学汇编实验四子程序设计文档格式.docx
- 文档编号:14741225
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:14
- 大小:51.62KB
福建农林大学汇编实验四子程序设计文档格式.docx
《福建农林大学汇编实验四子程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《福建农林大学汇编实验四子程序设计文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
CX,3
DL,MAG[SI]
MADD
SI
LL
START:
MOV
MOV
LL:
CALL
INC
LOOP
MOVAH,4CH
INT21H
MADDPROC
MOVAH,02H
RET
CODEENDS
ENDSTART
2)阅读S31.ASM和S32.ASM两个模块中的程序,并分别汇编,然后连接成一个可执行文件S31.EXE。
具体步骤如下:
MASMS31.ASM(分别汇编)
MASMS32.ASM
LINKS31S32(将两个文件连接成为一个文件名为S31)
S31.EXE(运行)
3)编程:
利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将
不相等的字符显示出来。
(也可以将找到的不相等字符逐个显示,用INT21H的02功能调用)
4)编程:
子程序搜索指定字符缓冲区中是否有N,如果有用Y替代。
调用子程序将
BUF1,BUF2,BUF3中的N全部用Y替代。
附源程序:
NAMES31.ASM
不同模块间的段间调用。
从键盘输入2位非压缩BCD数,存入AX寄存器中。
为了将其转换为二进制数,编写一个子程序TRAN。
显示子程序DISP完成将16进制数转换为对应的ASCII码并显示该字符,显示子程序在另一模块S32中。
输入数据为00时结束。
EXTRN
DISP:
FAR
CODE
SEGMENTPARA‘C
ASSUME
CS:
CODE
AH,01H
INT
21H
BL,AL
AH,AL
AL,BL
CMP
AX,3030H
JE
EXIT
NEARPTRTRAN
FARPTRdisp
JMP
START
EXIT:
AH,4CH
TRAN
PROC
NEAR
;
将输入的
ASCII码转换成
2进制数
AND
AX,0F0FH
将ASCII
码转换成非压缩
BCD码,
高位在AL中
MOVBL,AH
MOVCL,10D
MULCL
ADDAL,BL
TRANENDP
NAMES32.ASM
PUBLICDISP
CODE1SEGMENTPARA‘CODE'
CODE1
DISPPROCFAR
MOVBL,AL
MOVBH,00
MOVCH,4
ROLL:
MOVCL,4
ROLBX,CL
MOVDL,BL
ANDDL,0FH
CMPDL,9
JBENEXT1
ADDDL,07H
NEXT1:
ADDDL,30H
DECCH
JNZROLL
DISPENDP
CODE1ENDS
END
5)编一个子程序:
输入一个字符,显示出来。
6)编一个子程序:
输入一个字符串,显示出来。
4.算法描述及实验步骤
题1:
依题输入相应的代码如下,运行->调试->单步执行,对CALL语句和RET语句观
察SP,IP的变化,并用D命令查看栈顶的内容。
题3及4,5,6按要求编写即可
5.调试过程
无
6.实验结果
【题一】
实验结果如下
有上图可知,当程序运行到call语句之前,SP一直保持0000不变,而IP则一直在增
加。
继续单步执行程序
由上图,当程序在RET语句之前运行时,SP、IP每次都是分别按2和1递增,当运行
到RET语句时,SP还是按照2来递增,而IP出现了变化,这次却减少了很多,说明指针
回撤执行下一个循环。
题二】按要求把s31s32分别汇编连接形成一个s31.exe文件,如下汇编s31
汇编s32
Links31s32
形成一个s31.exe的文件
题三】编写代码如下
运行结果如下图
BUF1='
HELLOWORL'
D!
BUF2='
HOLLOWOLLD'
~比较可知BUF1与BUF2中不同的字符有
致
【题四】
ER!
结果与预期一
编写代码如下
分析:
有图可知,结果将BUF1和BUF2中的n改为了y完成题目要求
题五】编一个子程序:
输入一个字符,显示出来
【题六】编一个子程序:
输入一个字符串,显示出来
7.总结
通过本次上机实验,学会了子程序的编写和主子程序的调用,并且掌握了在不同模块间程序的调用和调试。
在本次实验中,再一次加深了对汇编程序的汇编以及连接运行的方法。
附录:
【题3代码】
DATASEGMENT
BUF1DB'
HELLOWORLD!
'
LEN=$-BUF1
BUF2DB'
HOLLOWOLLD~'
ASSUMECS:
CODE,DS:
DATA
STAR:
TMOVAX,DATA
MOVDS,AX
LEASI,BUF1
LEADI,BUF2
MOVCX,LEN
CALLCMPP
MOVAH,4CH
;
子程序
CMPPPROCNEAR
L1:
MOVDL,[SI]
CMPDL,[DI]
JZNEXT
MOVAH,02H
NEXTI:
NCSI
INCDI
LOOPL1
RET;
子程序返回
CMPPENDP
【题4代码】
BUF1DB'
aaanaannaaan'
0ah,0dh,'
$'
LEN1=$-BUF1
bbnnnbbbbnnn'
'
LEN2=$-BUF2
DATA
TMOVAX,DATA
MOVDS,AX
MOVCX,LEN1
CALLCMMP
LEASI,BUF2
MOVCX,LEN2
CMMPPROC
MOVDX,SI
CMP1:
CMPBYTEPTR[SI],'
n'
JNE
NOTN
AL,'
y'
[SI],AL
NOTN:
CMP1
AH,09H
CMMP
ENDP
ENDS
显示字符串
【题5代码】
STACKSSEGMENSTTACK
DW128DUP(?
)
STACKSENDS
CSEG
SEGMENPTARAPUBLIC'
CODE'
TMOVAH,01
MOVDL,AL
MOVAH,02
MOVAL,0
MOVAH,4CH
CSEGEN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 农林 大学 汇编 实验 子程序 设计