字符及字符串的输入输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四字符及字符串的输入输出1 实验目的

掌握简单的DOS系统功能调用

掌握在PC机上建立,汇编,连接,调试程序

2 实验内容

内容一:字符的输入和输出

从键盘读入一个小写字母,输出字母表中倒数与该字母序号相同的那个字母。

程序段:

CSEG SEGMENT

ASSUME CS:CSEG

START:MOV AH,1

INT 21H

MOV BL,7AH

MOV CL,61H

SUB BL,AL

ADD BL,CL

MOV AL,BL

MOV DL,AL

MOV AH,2

INT 21H

KEY:MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

实验结果截图如下:

实验习题:

程序段:

DSEG SEGMENT

STRING1 DB 'Please input a lowercase letter:',0DH,0AH,'$'

STRING2 DB 'The inverse letter is:',0DH,0AH,'$'

DSEG ENDS

;

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG

START:MOV AX,DSEG

MOV DS,AX

LEA DX,STRING1

MOV AH,09H

INT 21H

MOV AH,1

INT 21H

MOV BL,7AH

MOV CL,61H

SUB BL,AL

ADD BL,CL

LEA DX,STRING2

MOV AH,09H

INT 21H

MOV DL,BL

MOV AH,2

INT 21H

KEY:MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

实验截图如下:

内容二:字符串的输入和输出

从键盘输入一个字符串,将输入的字符串传说给STR变量,在屏幕上显示STR变量中的内容。程序段:

DSEG SEGMENT

KBUF DB 0DH,0AH

STR DB 20 DUP(20H),'$'

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG

START:

MOV AX,DSEG

MOV DS,AX

LEA DX,KBUF

MOV AH,0AH

INT 21H

MOV CX,20

ADD DX,2

MOV SI,DX

LEA DI,STR

NEXT:MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

LOOP NEXT

MOV DX,STR

MOV AH,9

INT 21H

KEY:MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

运行结果截图如下:

实验习题要求:

程序段:

DSEG SEGMENT

STRING1 DB 'Please input a string:',0DH,0AH,'$' STRING2 DB 'The string you input is:',0DH,0AH,'$' KBUF DB 0DH,0AH

CRLF DB 0DH,0AH

STR DB 20 DUP(20H),'$'

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG

START:

MOV AX,DSEG

MOV DS,AX

LEA DX,STRING1

MOV AH,09H

INT 21H

LEA DX,KBUF

MOV AH,0AH

INT 21H

MOV CX,0

ADD DX,2

MOV SI,DX

LEA DI,STR

NEXT:MOV AL,[SI]

MOV [DI],AL

INC SI

INC DI

LOOP NEXT

LEA DX,STRING2

MOV AH,09H

INT 21H

LEA DX,STR

MOV AH,9

INT 21H

KEY:MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

实验结果如下截图:

三思考题

1.DOS系统功能调用的10号功能对键盘缓冲区格式地要求:第一个字节为输入字符串的最大长度,第二个字节用来存放实际输入字符串的长度,从第三个字节开始存放实际输入的字符串的ASCII码;

2.DOS系统功能中的1、2、9、10号功能的输入输出参数及存放的寄存器关系如下表:

3.字符和字符串的输入输出的实现都需要调用相应功能号,并产生相应的中断,即先给AX赋值所需的功能号,然后产生21H中断,输入的单字符会存放在AL中,输出单字符前需要把字符ASCII码存放到DL中,输入输出字符串,需要先把字符缓冲区首址存放到DS:DS寄存器中。

相关文档
最新文档