微机原理实验六 从键盘输入数据并显示

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

实验六从键盘输入数据并显示

1要求:

编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示在屏幕上。若输入的不是0—F间的数字,则显示出错

信息,并要求重新输入。

2目的:

掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。

实验程序

CRLF MACRO

MOV AH,02H

MOV DL,0DH

INT 21H

MOV AH,02H

MOV DL,0AH

INT 21H

ENDM

DATA SEGMENT

MARK DB?

MESS DB'please input the number(H),press inter,ture into number(B).press space end.',0DH,0AH,'$'

ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$' DATA ENDS

STACK SEGMENT

STA DW32 DUP(?)

TOP DW?

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV SP,TOP

HEAD: CRLF

MOV MARK,0

MOV AH,09H

LEA DX,MESS

INT 21H ;显示提示输入的信息

CALL GETNUM ;接收键入数值送DX

CMP MARK,01H

JE HEAD

MOV CX,0010H ;16位

MOV BX,DX

TTT: ROL BX,1 ;循环左移1位

MOV DL,BL

AND DL,01H ;屏蔽掉高7位

ADD DL,30H

MOV AH,02H

INT 21H ;显示二进制位对应的ASCII字符

LOOP TTT

JMP HEAD

FINI: MOV AX,4C00H

INT 21H ;返回DOS

GETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CX

XOR DX,DX

GGG: MOV AH,01H

INT 21H

CMP AL,0DH ;输入为回车,则进行转换

JE PPP

CMP AL,20H ;输入为空格,则退回DOS

JE FINI

CMP AL,30H

JB KKK

SUB AL,30H

CMP AL,0AH

JB GETS

CMP AL,11H

JB KKK

SUB AL,07H

CMP AL,0FH

JBE GETS

CMP AL,2AH

JB KKK

CMP AL,2FH

JA KKK

SUB AL,20H

GETS: MOV CL,04

SHL DX,CL

XOR AH,AH

ADD DX,AX

JMP GGG

KKK: MOV AH,09H

MOV DX,OFFSET ERROR

INT 21H

MOV MARK,01H PPP: PUSH DX

CRLF

POP DX

POP CX

RET GETNUM ENDP CODE ENDS

END START

相关文档
最新文档