- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初级程序的编写与调试
实验目的
掌握无条件转移指令、条件转移指令;
掌握利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法;
掌握直接向视频RAM送ASCII码进行屏幕显示的方法;
掌握屏幕字符显示程序PC微机
DOS操作系统或 Windows 操作系统
MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境
实验要求
仔细阅读有关无条件转移指令、条件转移指令的内容;
阅读利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的内容;
阅读实验指导书中的字符串屏幕显示程序、字符屏幕显示程序、直接向VRAM送ASCII码显示字符程序、用字符搜索法确定字符串长度程序、16进制数化ASCII码的一般方法的程序段,调试上述程序。
主要实验步骤及结果
1.利用INT 21 0AH号功能调用显示字符串。
(1)用A命令在100H处键入下列程序:
MOV AH, 9
MOV DX,110
INT 21
INT 20
(2)用A命令在110H处键入下列字符串的ASCII码:
DB This is a sample!$
(3)用N命令和W命令将此程序(包括数据区)存入文件名为AA.COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。
(4)
2.利用INT 21H 2号功能显示字符
(1)用A命令在100H处键入下列程序:
XOR DL,DL
MOV CX,100
LOP: MOV AH,2
INT 21
INC DL
PUSH CX
MOV CX,8
DELY: PUSH CX
MOV CX,0
J: LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
(2)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?
表中的07H-0DH处是用字符表示,如07H为BEL,0DH为CR,但是显示出来的是用小符号来表示,如07H用笑脸表示,0DH直接是以回车来表现。
(3)按CTRL+BREAK退出此程序,若一次不行可多做几次。
3.直接向VRAM送ASCII码显示字符
(1)用A命令在100H处键入下列程序
MOV AX,B000
MOV DS,AX
XOR AL,AL
XOR BX,BX
MOV CX,100
LOP:MOV [BX],AL
INC BX
INC AL
PUSH CX
MOV CX,8
DELY:PUSH CX
MOV CX,0
J: LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
(2)用N命令和W命令将此程序存入BB.COM文件中。(一定要先存入!)
(3)用G命令运行此程序,仔细观察每一个ASCII码显示结果,并和字符表及上一道程序运行情况进行对照,其控制字符区(07-0DH)显示结果和INT 21H 2号功能调用有何不同?
控制字符区在该程序中没有显示,在上一个程序中显示为笑脸等符号。
4.用字符搜索法确定字符串长度
(1)用A命令在100H开始的内存处键入下列程序
JMP START
DB This is the program to measure
DB the length of a string!$
START: MOV BX,102
MOV AL,24
XOR CL,CL
LOP: CMP AL,[BX]
JZ EXIT
INC BX
INC CL
JMP LOP
EXIT: INT3
(2)用G命令运行此程序,并检查CL的统计长度是否与你自己统计的实际长度是否一样?
5.用字符搜索法确定字符串长度
(1)用A命令在100H处键入下列程序:
MOV SI,0
MOV BL,10
LOP: MOV DL,[SI]
MOV CL,4
SHR DL,CL
CMP DL,0A
JC J1
ADD DL,7
J1: DL,30
MOV AH,2
INT 21
MOV DL,[SI]
AND DL,0F
CMP DL,0A
JC J2
ADD DL,7
J2: ADD DL,30
MOV AH,2
INT 21
MOV DL,20
MOV AH,2
INT 21
INC SI
DEC BL
JNZ LOP
INT 20
(2)用N,W命令将此程序用CC.COM文件名存入磁盘。
(3)用Q命令退出DEBUG。
(4)在DOS命令状态下直接运行CC.COM命令文件,应在屏幕上显示出内存从0000H开始的16个字节的内容,若有错误,用DEBUG检查之。
(5)自编程序:修改上面程序,使除以16进制数形式显示内存内容外,还能在其右边显示该16进制码所对应的AS
文档评论(0)