《微机原理试验六从键盘输入数据并显示.docx》由会员分享,可在线阅读,更多相关《微机原理试验六从键盘输入数据并显示.docx(8页珍藏版)》请在三一文库上搜索。
1、实验六从键盘输入数据并显示1 要求:编写程序,将键盘接收到的四位十六进制数转换为等值的二进制数,并显示在屏幕上。若输入的不是0 F问的数字,则显示出错 信息,并要求重新输入。2 目的:掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。(开始)实验程序CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTMARK DB ?MESS DB 'please input the number(H),press inter,ture into number(B).pr
2、ess space end.' ,0DH,0AH,'$ERROR DB 0DH,0AH, 'input error' ,0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW 32 DUPTOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART : MOV AX,DATAMOV DS,AXMOV ES,AXMOV SP,TOPHEAD:CRLFMOV MARK,0MOV AH,09HLEA DX,MESS;显示提示输入的信息;接收键
3、入数值送DX;1困:INT 21HCALL GETNUMCMP MARK,01HJE HEADMOV CX,0010HMOV BX,DXTTT:ROLBX,1;循环左移1位MOVDL,BLANDDL,01H;屏蔽掉高7位ADDDL,30HMOVAH,02HINT21H;显示二进制位对应的ASCI疗符LOOP TTTJMPHEADFINI:MOVAX,4C00HINT21H;返回DOSGETNUM PROC NEAR;子程序,接收键入数值送DXPUSH CXXORDX,DXGGG:MOVAH,01HINT21HCMPAL,0DH;输入为回车,则进行转换JEPPPCMPAL,20H;输入为空格,则
4、退回DOSJEFINICMPAL,30HJBKKKSUBAL,30HCMP AL,0AHJB GETSCMP AL,11HJB KKKSUB AL,07HCMP AL,0FHJBE GETSCMP AL,2AHJB KKKCMP AL,2FHJA KKKSUB AL,20HGETS:MOV CL,04SHL DX,CLXOR AH,AHADD DX,AXJMP GGGKKK:MOV AH,09HMOV DX,OFFSET ERRORINT 21HMOV MARK,01HPPP:PUSH DXCRLFPOP DXPOP CXRETGETNUM ENDPCODE ENDSEND STARTI 24 HEAD:nuuSPTTlJr CRLF