- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理实验2 字符及字符串的输入与输出
班级学号姓名
实验时间:年月日实验成绩:
1.实验目的
利用汇编及连接程序,实现字符及字符串的输入与输出,要求运用系统功能调用INT21H。完成创建源程序文件,汇编,连接,运行,实验结果的查看。
完成下面两个任务:
a.在屏幕上显示‘hello,world!’
b.从键盘上输入一个英文字符,然后显示其ascii二进制代码。
2.实验原理
a.输入单字符
这是1号系统功能调用,使用格式如下所示:它没有入口参数,执行1号系统功能调用时,系统等待键盘输入,待程序员按下任何一键,系统先检查是否Ctrl-Break键,如果是则退出,否则将键入字符的ASCII码置入AL寄存器中,并在屏幕上显示该字符
b.输入字符串
这是0AH号系统功能调用,其功能是将键盘输入的字符串写入到内存缓冲区中,因此必须事先在内存储器中定义一个缓冲区。其第1字节给定该缓冲区中能存放的字节个数,第2字节留给系统填写实际键入的字符个数,从第3个字节开始用来存放键入的字符串,最后键入回车键表示字符串结束。如果实际键入的字符数不足填满缓冲区时,则其余字节填“0”;如果实际键入的字符数超过缓冲区的容量,则超出的字符将被丢失,而且响铃,表示向程序员发出警告。
0AH号系统功能调用的使用格式如下所示:
……
BUF DB 20
DB ? 定义缓冲区
DB 20 DUP(?)
……
MOV DX,OFFSET BUF
MOV AH,0AH 0AH号系统功能调用
INT 21H
以上程序中,由变量定义语句定义了一个可存放20个字节的缓冲区,执行到INT21H 指令时,系统等待用户键入字符串。程序员每键入一个字符,其相应的ASCII码将被写入缓冲区中,待程序员最后键入回车键时,由系统输出实际键入的字符数,并将其写入缓冲区的第2字节中。
c.单字符
这是2号系统功能调用,使用格式如下所示:
MOV DL,‘A’
MOV AH,2
INT 21H
执行2号系统功能调用时,将置入DL寄存器中的字符从屏幕上显示输出(或打印机打印输出)。
d.字符串
这是9号系统功能调用,其功能是将指定的内存缓冲区中的字符串从屏幕显示输出(或从打印机打印输出)。缓冲区中的字符串以“$”字符作为结束标志。
9号系统功能调用的使用格式如下所示:
……
BUFDB ′good bye $′
……
MOV DX,OFFSET BUF
MOV AH,9
INT 21H
……
执行9号系统功能调用时,将内存缓冲区BUF中存放的字符串(以“$”字符为结束)送屏幕显示输出(或送打印机打印输出)。
3.实验仪器设备
4.实验过程
完成下面两个任务:
a.在屏幕上显示‘hello,world!’
b.从键盘上输入一个英文字符,然后显示其ascii二进制代码。
5.实验结果《实验程序代码》
DSEG SEGMENT
s1 db Hello,world!,$
s2 db 10,13,$
str db 100
db ?
db 100 dup(?)
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG
MAIN PROC FAR
mov ax, dseg
mov ds, ax
mov ah,9h
lea dx,s1
int 21h ;显示字符串1
mov ah,0ah
lea dx,str
int 21h
mov ah,9h
lea dx,s2
int 21h
xor cx,cx
mov cl,[str+1]
lea bx,[str+2]
kk: mov ah,2h
mov dl,[bx]
int 21h
inc bx
loop kk
mov ah,9h
lea dx,s1
int 21h
mov ah,1
int 21h
mov ax,4c00h
int 21h
MAIN ENDP
CSEG ENDS
END MAIN
文档评论(0)