当前位置:文档之家› 微机汇编实验七屏幕字符显示程序

微机汇编实验七屏幕字符显示程序

实验时间:2014年6月4日实验成绩评定:
姓名:黄涛学号:2012311419
实验七屏幕字符显示程序
实验目的:
通过实验掌握下列知识:
1、8086/8088指令: JMP,CMP,LEA,CMPBS。

2、利用DOS功能调用INT21H的2号、8号、9号和0A号功能进行屏幕显示的方法。

3、IBM-PC机的ASCII码表及控制字符。

实验内容及步骤:
一、利用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处控制字符显示结果与表上有何不同?
3、按CTRL+BREAK退出此程序,若一次不行可多做几次。

二、自编一个程序, 在显示器上显示“How are you ?”,然后读一个字符,但不显示此字符,若读入字符是‘y’,则显示‘ok’。

解:程序如下:
DSEG SEGMENT
DAT1 DB 'HOW ARE YOU?',0DH,0AH,'$'
DAT2 DB 'OK',0DH,0AH,'$'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START: MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET DAT1
MOV AH,9
INT 21H
MOV AH,8
INT 21H
CMP AL,'Y'
JNE NEXT
LEA DX,DAT2
MOV AH,9
INT 21H
NEXT: MOV AH,4CH
INT 21H
CSEG ENDS
END START
程序编译:
程序运行:
1.输入“Y”:
2.输入其他字符:
三、自编一个程序, 屏幕显示“PASS WORD ?”,随后从键盘读入字符串,并比较这个字符串与内部设定的字符串,若两者相同,则显示“ok”,否则不作任何显示。

程序代码:
DSEG SEGMENT
PASS1 DB '1234'
N EQU $-PASS1
DT1 DB 'pass word',0DH,0AH,'$'
PASS2 DB 20
DB ?
DB 20 DUP(?)
DT2 DB 'OK $'
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,ES:DSEG
START:MOV AX,DSEG
MOV DS,AX
MOV ES,AX
LEA DX,DT1
MOV AH,9
INT 21H
LEA DX,PASS2
MOV AH,0AH
INT 21H
LEA SI,PASS1
LEA DI,PASS2
CMP BYTE PTR[DI+1],N
JNE LAST
MOV CX,N
LEA DI,PASS2+2
CLD
REPZ CMPSB
JNZ LAST
DISOK:LEA DX,DT2
MOV AH,9
INT 21H
LAST: MOV AH,4CH
INT 21H
CSEG ENDS
END START
程序编译:程序运行:。

相关主题