汇编语言程序设计实验说明书2 联系客服

发布时间 : 星期二 文章汇编语言程序设计实验说明书2更新完毕开始阅读acbe3db86529647d272852ed

实验四 屏幕字符显示程序

实验目的:

通过实验掌握下列知识:

1、8088指令: JMP,ROR,XOR,HLT。

2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。 3、直接向视频RAM(VRAM)送ASCII码进行屏幕显示的方法。 4、IBM-PC机的ASCII码表及控制字符。 5、命令(。COM)文件及使用方法。

6、利用^Break退出程序的方法及局限性。 实验内容及步骤:

一、利用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、用Q命令退出DEBUG。

5、在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。

二、利用INT 21H 2号功能显示字符:

1、用A命令在100H处键入下列程序:

XOR DL,DL MOVCX,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处控制字符显示结果与表上有何不同?

3、按CTRL+BREAK退出此程序,若一次不行可多做几次。 三、直接向VRAM送ASCII码显示字符

12

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 21H2号功能调用有何不同? 四。自编一个程序,要求显示AX的内容,即能显示AX=xxxx。

调试时AX的内容可用R命令赋值,也可用MOV指令赋值。 实验报告要求:

1、各项实验记录及观察体会。

2、利用INT 21H显示和直接向VRAM送ASCII码显示方法在显示结果上有什么不同? 3、自编程序草稿及调试结果。

13

实验五 条件转移指令

实验目的:

通过实验掌握下列知识:

1、8088指令:JZ,JNZ,JC,JNC,CMP,SHR。 2、程序:用字符搜索法确定字符串长度。 3、程序:16进制数化为ASCII码的一般方法。 实验内容及步骤:

一、用字符搜索法确定字符串长度:

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的统计长度是否与你自己统计的实际长度是否一样? 二、16进制数化ASCII码的一般方法(显示内存内容)

1、用A命令在100H处键入下列程序:

MOVSI,0 MOVBL,10

LOP: MOVDL,[SI] MOVCL,4 SHRDL,CL CMPDL,0A JC J1 ADD DL,7 J1: ADD 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

14

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进制码所对应的ASCII字符,07-0D的控制字符用'.'代替。 三、综合程序(选做):测量一字符串长度,并用16进制数显示之

程序:

JMP START

DB 'This is a program to measure the length of a string。' DB 0D,0A

DB 'the length of the string is: $'

START: MOV AH,9

MOV DX,102 INT 21 MOV BX,101 MOV AL,'$' MOV DH,FF

LOP: INC BX

INC DH

CMP AL,[BX] JNZ LOP MOV CH,2 MOV CL,4

LOP1: ROL DH,CL

MOV DL,DH AND DL,0F ADD DL,30 CMP DL,3A JC J ADD DL,7

J: MOV AH,2

INT 21 DEC CH JNZ LOP1 INT 20

键入此程序,存入???.COM文件中并在DOS命令状态下直接运行之,若未出现预期结果,用DEBUG检查有否错误? 实验报告要求:

15