微型计算机与原理实验四 字符及字符串的输入和输出

更新时间:2023-06-10 13:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验四 字符及字符串的输入和输出

一、 实验任务

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

DSEG SEGMENT

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG

START:MOV AX,DSEG

MOV DS,AX

MOV AH,1

INT 21H

SUB AL,61H

MOV DL,7AH

SUB DL,AL

MOV AH,2

INT 21H

KEY: MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

2、对实验内容1,在程序中增加显示提示字符串“Pleaseinputalower caseletter”和“Theinverseletteris:”,修改程序并上机验证。

DSEG SEGMENT

STRING DB 'please enter a lowercase letter:',0DH,0AH,'$'

STR 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,STRING

MOV AH,09H

INT 21H

MOV AH,1

INT 21H

SUBAL,61H

MOV CL,7AH

SUB CL,AL

LEA DX,STR

MOV AH,09H

INT 21H

MOV DL,CL

MOV AH,2

INT 21H

KEY: MOV AH,1

INT 16H

JZ KEY

MOV AH,4CH

INT 21H

CSEG ENDS

END START

3、从键盘读入一个字符串,将输入的字符串传送给STR变量,在屏幕上显示

STR变量中的内容。

DSEG SEGMENT

STR DB 20,0,20 DUP(20H)

CRLF DB 0DH,0AH

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

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,ES:DSEG

START: MOV AX,DSEG

MOV DS,AX

LEA DX,STR

MOV AH,0AH

INT 21H

XOR CX,CX

MOV CL,[STR+1]

MOV SI,DX

LEA DI,INFO

AGAIN: MOV BL,[SI]

MOV [DI],BL

INC SI

INC DI

LOOP AGAIN

LEA DX,INFO

MOV AH,9

INT 21H

LEA DX,CRLF

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

CSEG ENDS

4、对实验内容2,在程序中增加显示提示字符串“Pleaseinputastring”和“Thestringyouinputis:”,修改程序并上机验证。

DSEG SEGMENT

STR DB 20,0,20 DUP(20H)

CRLF DB 0DH,0AH,'$'

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

STRING1 DB 'Please enter a string :',0DH,0AH,'$'

STRING2 DB 'The string you input is:',0DH,0AH,'$'

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG,ES:DSEG

START: MOV AX,DSEG

MOV DS,AX

LEA DX,STRING1

MOV AH,9

INT 21H

LEA DX,STR

MOV AH,0AH

INT 21H

XOR CX,CX

MOV CL,[STR+1]

INC DX

INC DX

MOV SI,DX

LEA DI,INFO

AGAIN: MOV BL,[SI]

MOV [DI],BL

INC SI

INC DI

LOOP AGAIN

LEA DX,STRING2

MOV AH,9

INT 21H

LEA DX,CRLF

MOV AH,9

INT 21H

LEA DX,INFO

MOV AH,9

INT 21H

MOV AH,4CH

INT 21H

CSEG ENDS

说明系统功能调用的10号功能对键盘缓冲区格式上有何要求。

键盘缓冲区第一个字节为用户定义的缓冲区长度n,第二个字节为实际读入的字符个数,第三个字节开始存放输入的字符。

1.1、2、9、10号功能的输入输出参数有哪些?分别放在什么寄存器中?

2.总结一下,如何实现字符及字符串的输入输出。

(1)字符输入

MOV AH,1

INT 21H

(2)字符输出

MOV DL,<要显示的内容>

MOV AH,2

INT 21H

(3)字符串输入

LEA DX,<键盘缓冲区>

MOV AH,0AH

INT 21H

(4)字符串输出

LEA DX,<要显示的字符串>

MOV AH,09H

INT 21H

本文来源:https://www.bwwdw.com/article/9x51.html

Top