汇编实验报告17页Word文件下载.docx
- 文档编号:13539253
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:20
- 大小:93.52KB
汇编实验报告17页Word文件下载.docx
《汇编实验报告17页Word文件下载.docx》由会员分享,可在线阅读,更多相关《汇编实验报告17页Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
成绩:
指导教师:
实验日期:
实验一、用表格形式显示字符
一、验目的及要求
用表格形式显示ASCII字符SMASCII。
按15行×
16列的表格形式显示ASCII码为10H~100H的所有字符,即一行为主的顺序及ASCII码递增的次序显示对应的字符。
每16个字符为一行,每行中的相邻两个字符之间用空白字符(ASCII为0)隔开。
2、所用仪器、设备
PC机、Masmforwindows集成实验环境
三、实验源代码
STACKSSEGMENT;
此处输入堆栈段代码
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX;
此处输入代码段代码
movcx,0f0h
movbl,10h
movdl,10h
again:
movah,2
int21h
pushdx
movdl,0
popdx
incdl
decbl
cmpbl,0
jnznext
movbl,10h
movdl,0dh
movdl,0ah
popdx
四、实验结果截图
实验二、查找匹配字符串
一、实验目的及要求
查找匹配字符串SEARCH,要求程序接收用户键入一个关键字以及一个句子,如果句子中不包含关键字,则显示“Nomatch!
”;
如果句子中包含关键字则显示“Match”,且吧该关键字在句子中的位置用十六进制数显示出来。
二、所用仪器、设备
PC机、Masmforwindows集成实验环境
三、实验流程图
四、实验代码
START:
pushds
subAX,AX
subBX,BX
subDI,DI
subSI,SI
pushAX;
为返回dos并清空后面要用到的寄存器
MOVAX,DATA
MOVDS,AX
LEADX,mess1
MOVah,09
INT21h;
输出Enterkeyword
LEADX,stoknin1
MOVah,0ah;
用21号中段的0ah号功能获取关键字
INT21h
cmpact1,0
jeexit;
如果为空直接退出程序
a10:
;
输入Sentence并判断
LEADX,change
MOVah,09
输出回程,换行
LEADX,mess2
输出EnterSentence:
LEADX,stoknin2
MOVah,0ah
用21号中段的0ah号功能获取句子
MOVAL,act1
CBW
MOVCX,AX;
保存关键字长度到cx
PUSHCX;
cx入栈
MOVAL,act2
cmpAL,0
jea50;
保存句子长度到al,若句子为空则跳转显示notmatch
SUBAL,act1
jsa50;
若句子长度小于关键字长度,则跳转显示notmatch
INCAL
CBW
LEABX,stokn2;
将句子的首地址放进BX
MOVDI,0
MOVSI,0
a20:
比较,内循环
MOVAH,[BX+DI]
CMPAH,stokn1[SI];
遇见字符不相等就跳转到a30
jnea30
INCDI
INCSI
DECCX;
没遇到一个相等的字符,cx-1,cx不为0则比较下一个字符,当cx为0是说明关键字比较完
CMPCX,0
jea40
jmpa20
a30:
;
外循环,BX+1,清空si,di继续内循环比较
INCBX
DECAL
jea50
POPCX
pushCX
a40:
match,将bx减去句子的首地址加一得到关键字所在位置,调用二进制转十六进制子函数将位置输出
SUBBX,offsetstokn2
INCBX
LEADX,change
LEADX,mess3
CALLbtoh
LEADX,mess5
jmpa10
;
二进制转换十六进制
btohPROCNEAR
MOVCH,4
rotate:
MOVCL,4
ROLBX,CL
MOVAL,BL
andAL,0fh
addAL,30h
cmpal,3ah
jlprintit
addal,7h
printit:
MOVdl,al
MOVah,2
decch
jnzrotate
ret
btohendp
a50:
显示notmatch
LEADX,mess4
INT21h
5、实验结果
实验三、分类统计字符个数
分类统计字符个数COUNT-CHAR,程序接收用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字符、数字及其他字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中。
二、实验代码
MOVAX,DATAS
MOVDS,AX
LEADX,STRING1;
显示输入提示信息
MOVAH,9
INT21H
MOVCX,100;
设置循环次数主够大
L1:
MOVAH,1;
中断调用,单字符输入
iNT21H
CMPAL,0DH;
若输入回车符则结束
JZOVER2
CMPAL,30H
JBOTHER;
若<
30H(0),OTHERS++
CMPAL,39H;
若>
39H(9),跳转进一步比较
JAHIGHER1
JMPDIGITAL;
DIGIT++
HIGHER1:
CMPAL,41H;
if<
41H(A),OTHERS++
JBOTHER
CMPAL,5AH;
if>
5AH(Z),跳转继续比较
JAHIGHER2
JMPUALPHA;
ALPHAU++
HIGHER2:
CMPAL,61H;
61H(a),OTHERS++
JBOTHER
CMPAL,7AH;
7AH(z),OTHERS++
JAOTHER
JMPLALPHA;
ALPHAL++
JMPOVER;
比较结束
OTHER:
INCOTHERS;
OTHERS++
JMPOVER
DIGITAL:
INCDIGIT;
LALPHA:
INCALPHAL;
UALPHA:
INCALPHAU;
OVER:
NOP
LOOPL1;
循环,输入下一字符
OVER2:
CALLENDLINE;
回车换行
LEADX,STRING2;
输出提示信息
XORAX,AX
MOVAL,DIGIT;
将统计的数字送AX,为输出做准备
CALLDISPLAY;
调用输出两位数字的子程序
下同
LEADX,STRING3
MOVAL,ALPHAU
CALLDISPLAY
CALLENDLINE
LEADX,STRING4
MOVAL,ALPHAL
LEADX,STRING5
MOVAL,OTHERS
MOVAH,4CH
ENDLINEPROCNEAR;
控制输出格式,输出回车换行子程序
MOVAH,2
MOVDL,0AH
MOVDL,0DH
RET
ENDLINEENDP
DISPLAYPROCNEAR;
输出两位数字的子程序
MOVBL,10;
10送BL
DIVBL;
AX/BL,AL=商,AH=余数
PUSHAX;
保存AX中的信息
MOVDL,AL
ADDDL,30H
INT21H;
输出十位数
POPAX;
出栈送AX
MOVDL,AH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 实验 报告 17