【免费下载】 微机原理实验六 从键盘输入数据并显示
微机原理实验六从键盘输入数据并显示

实验六从键盘输入数据并显示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).press space end.',0DH,0AH,'$'ERROR DB 0DH,0AH, 'input error',0DH,0AH,'$'DATA ENDSSTACK SEGMENTSTA DW32 DUP(?)TOP 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,MESSINT 21H ;显示提示输入的信息CALL GETNUM ;接收键入数值送DXCMP MARK,01HJE HEADMOV CX,0010H ;16位MOV BX,DXTTT: ROL BX,1 ;循环左移1位MOV DL,BLAND DL,01H ;屏蔽掉高7位ADD DL,30HMOV AH,02HINT 21H ;显示二进制位对应的ASCII字符LOOP TTTJMP HEADFINI: MOV AX,4C00HINT 21H ;返回DOSGETNUM PROC NEAR ;子程序,接收键入数值送DX PUSH CXXOR DX,DXGGG: MOV AH,01HINT 21HCMP AL,0DH ;输入为回车,则进行转换JE PPPCMP AL,20H ;输入为空格,则退回DOSJE FINICMP AL,30HJB KKKSUB AL,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 START。
实验六键盘显示控制实验

实验六键盘显示控制实验一、实验目的1.掌握8279键盘显示电路的基本功能及编程方法。
2 •掌握一般键盘和显示电路的工作原理。
3.进一步掌握定时器的使用和中断处理程序的编程方法。
二、实验内容1. 8237键盘显示电路的基本原理本实验系统中把键盘显示电路设计在一块扩展电路板上,用一根20芯的扁平电缆与实验台上扩展插头J7相连。
小键盘上每按一个键,6位数码管上显示出相应字符,其对应关系如下表6-1。
2.设计电子时钟利用实验台上提供的定时器8253和扩展板上提供的8279以及键盘和数码管显示电路,设计一个电子钟。
由8253中断定时,小键盘控制电子钟的启停及初始值的预置。
电子钟显示格式如下:7407 74073fe2feITfe3B i BKb_6B B/B HEJRR QcCRRnorJ R --CDV44K ccvfLT OBTkK TUQEO -LIUO_HEEZM —ZuB4U2U2U lu B CCVCCVCDD CDDXX . XX . XX 由左向右分别为时、分、秒 并具有如下功能:① C 键:清除,显示00. 00. 00。
② G 键:启动,电子钟计时。
③ D 键:停止,电子钟停止计时④ P 键:设置时、分、秒值。
输入时依次为时、分、秒,同时应有判断输入 错误的能力,若有错,则显示:E ----------- 。
此时按P 键重新输入预置值。
⑤ E 键:程序退出,返回DOS 。
3.硬件电路图硬件电路图如图6-1。
图6-1键盘显示控制电路图4. 硬件连线100x87545275452754526 722864H11做电子钟实验时,实验台上8253的CLK0接1MHz,GATE0和GATE1接入口清显示+5V , OUTO 接 CLK1 , OUT1 接 IRQ 。
CS 接 280H~287H 。
5 •编程提示(1)显示按键程序框图显示铵键程序框图如图 6-2 (a )主程序 框图,(b )键盘显示子程序框图,(c )显示子 程序框图。
微机原理实验报告(江苏大学)

微机原理课程设计报告专业:学号:姓名:一:课程设计目的结合微型计算机原理课程的学习,进一步巩固已学的知识,同时针对微型计算机原理知识的具体应用,学会对系统中DOS和BIOS的使用。
学会使用命令调用DOS观察程序运行结果,学会使用汇编语言编写程序,弄懂汇编程序的执行过程,弄懂汇编程序的上机过程以及如何运用MASM软件进行汇编程序的调试。
二:设计内容1.字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法,编写程序实现两个字符串比较,如相同则显示“MATCH”,否则显示“NO MATCH”。
详细源程序如下:CRLF MACROMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HENDMDATA SEGMENTS1 DB'MATCH',0DH,0AH,'$'S2 DB'NO MATCH',0DH,0AH,'$'S3 DB'INPUT STRING1:',0DH,0AH,'$'S4 DB'INPUT STRING2:',0DH,0AH,'$'MAXLEN1 DB 81ACTLEN1 DB?STRING1 DB 81 DUP (?)MAXLEN2 DB 81ACTLEN2 DB?STRING2 DB 81 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET S3INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN1INT 21HCRLFMOV AH,09HMOV DX,OFFSET S4INT 21HMOV AH,0AHMOV DX,OFFSET MAXLEN2INT 21HCRLFMOV SI,OFFSET STRING1MOV AH,[SI-1]MOV DI,OFFSET STRING2MOV AL, [DI-1]CMP AH,ALJGE GE1MOV CL,ALGE1: MOV CL,AHKKK: MOV AL,[SI]mov AH,[DI]CMP aH,ALJNZ NE1INC SIINC DILOOP KKKMOV AH,09HMOV DX,OFFSET S1INT 21HJMP EXITNE1: MOV AH,09HMOV DX,OFFSET S2INT 21HEXIT: MOV AX,4CHINT 21HCODE ENDSEND START以下是程序运行结果:2.从键盘输入数据并显示的设计为掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII 码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
8255控制键盘与显示实验

实验六 8255 控制键盘与显示实验一、实验目的1.掌握8255 输入、输出编程方法。
2.掌握阵列键盘和数码管动态扫描显示的控制方法。
二、实验内容用8255 可编程并行口做一个键盘、显示扫描实验,把按键输入的键值,显示在8255 控制的七段数码管上。
8255 PB 口做键盘输入线,PC 口做显示扫描线,PA 口做显示数据线。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图本实验需要用到 CPU 模块(F3 区)、8255 模块(C6 区)、8279 键盘与显示模块(E7 区)。
8255 键盘与显示电路原理图参见图7-1A、图7-1B,及前一实验的图6-1。
CS_8255 接8000H,则8255 状态/命令口地址为8003H,PA 口地址为8000H,PB 口地址为8001H、PC 口地址为8002H。
图7-1A 键盘显示电路1图7-1B 键盘显示电路2五、实验步骤1)系统各跳线器处在初始设置状态,S11E 和S12E 红开关全部打到下方(OFF)。
2)用8 位数据线对应连接8255 模块的JD3C(PA 口)、JD4C(PB 口)、JD5C(PC 口)到8279模块的JD3E、JD2E、JD4E;用导线连接8255 模块的CS_8255 到地。
3)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
4)在键盘上按任一单键,观察数码管的显示,数码管低位显示按键值。
D8255A EQU 8000H ;8255 PA 口地址D8255B EQU 8001H ;8255 PB 口地址D8255C EQU 8002H ;8255 PC 口地址D8255 EQU 8003H ;8255 状态/命令口地址LEDBUF EQU 50H ;显示缓存KEYVAL EQU 60H ;读到的键码ORG 0000HLJMP STARTORG 0100HSTART: MOV SP,#80H ;堆栈指针指到80HMOV DPTR,#D8255MOV A,#90H ;方式0,PB,PC口输出,PA口输入MOVX @DPTR,AMOV LEDBUF,#10H ;预置地址MOV LEDBUF+1,#11H ;低四位显示---MOV LEDBUF+2,#11HMOV LEDBUF+3,#11HMOV LEDBUF+4,#5 ;高四位显示8255MOV LEDBUF+5,#5MOV LEDBUF+6,#2MOV LEDBUF+7,#8KB_DIS:LCALL RD_KB ;读键盘MOV A,#0FFHCJNE A,KEYVAL,TOSHOW ;判读到键SJMP SHOW ;没有则继续读键TOSHOW:MOV LEDBUF,KEYVALSHOW: LCALL DISPLAYSJMP KB_DISRD_KB: ;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255CMOVX @DPTR,AMOV DPTR,#D8255A MOVX A,@DPTRMOV R1,#00H ;行首键号0CJNE A,#0FFH,KEYCAL ;判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255CMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#08H ;行首键号8CJNE A,#0FFH,KEYCALSJMP NOKEY ;无键按下KEYCAL: MOV R0,#08H ;计算键码循环8次SHIFT: RRC AJNC TORETINC R1DJNZ R0,SHIFTSJMP NOKEY ;无键按下TORET: MOV KEYVAL,R1RETNOKEY: MOV KEYVAL,#0FFH ;返回无键标志RETDisplay:MOV R7,#8 ;8个数码管MOV R5,#0MOV R0,#LEDBUFDLOOP:MOV A,R5RL A ;JD4E移到PC3、PC4、PC5RL ARL AANL A,#11111011BINC R5MOV DPTR,#D8255CMOVX @DPTR,A ;点亮对应的LEDMOV A,@R0MOV DPTR,#LEDSEGMOVC A,@A+DPTRINC R0MOV DPTR,#D8255BMOVX @DPTR,A ;显示数据LCALL DelayDJNZ R7,DLOOPRETDelay: PUSH R7MOV R7,#200DelayLoop:NOPDJNZ R7,DelayLoopPOP R7RETLEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5DB 7DH,07H,7FH,6FH,77H,7CH;6,7,8,9,A,BDB 39H,5EH,79H,71H,00H,40H;C,D,E,F, ,-END六、实验结果及分析当我们载入程序后我们可以看到数码管上显示“8255-- ”。
微机原理实验报告

实验六题目:编程从键盘输入一个二位十进制的月份数(01~12),然后显示出相应的英文缩写名。
程序说明:(1)程序名:实验六(2)功能:查找月份(3)原理:将对应月份进行编排,当输入对应编号时输出对应月份(4)算法说明:首先是对十二个月的英文缩写进行定义,定义BUF1,BUF2;进行字符输出操作INPUT;判断输入的字符是否为回车;若是则结束,若不是则对输入的字符进行判断,判断若为0,则继续输入字符,并将输入的字符转换为相应的二进制码,通过二进制码的去取相应地址的英文缩写,并将结果输出;若判断不为0,则继续输入字符,并将字符转换为二进制码,需要进行高四位清零,通过二进制码的去取相应地址的英文缩写,并将结果输出。
(5)流程图:完整代码:DA TAS SEGMENTMONTH DB 'Jan'DB 'Feb'DB 'Mar'DB 'Apr'DB 'May'DB 'Jun'DB 'Jul'DB 'Agu'DB 'Sep'DB 'Oct'DB 'Nov'DB 'Dec'STRING1 DB 0DH,0AH,'Input the month numble ( Press ENTER to quit ):$' BUF1 DB 0DH,0AH,10 DUP(0)BUF2 DB 81,?,80 DUP(?)DA TAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DA TASSTART:MOV AX,DATASMOV DS,AXMOV ES,AXLOP1:CALL INPUTCMP [BUF2+2],0DH ;输入的字符是否为"回车"JZ EXIT ;若是回车则转至EXITCALL SUB1CALL OUTPUTJMP LOP1EXIT:MOV AH,4CHINT 21HINPUT PROC NEAR ;字符输入LEA DX,string1MOV AH,09H;显示Input the month numble ( Press ENTER to quit ):INT 21HLEA DX,BUF2;取BUF2偏移地址送DXMOV AH,0AH;输入字符INT 21HRETINPUT ENDPOUTPUT PROC NEAR ;字符输出MOV [DI],'$' ;将结束符送[DI]LEA DX,BUF1 ;取BUF1偏移地址MOV AH,09H ;显示INT 21HRETOUTPUT ENDPSUB1 PROC NEARMOV AL,[BUF2+2]CMP AL,30H;输入的字符是否等于0JNZ NEXT1;若等于0则转至EXIT1MOV AL,[BUF2+3];若不等,下一个输入的字符送ALAND AX,0FH;滤掉高四位DEC AXJMP NEXT2NEXT1:MOV AL,[BUF2+3];输入的字符送ALAND AX,0FH;滤掉高四位ADD AX,0AH ; 将显存的段起始地址设为当前行的下一行;[在段地址中加0AH,相当于在偏移地址中加了0A0H(=160d)] DEC AXNEXT2:MOV BX,AXSHL AX,1;AX左移一位ADD BX,AXMOV SI,BXLEA DI,BUF1;取BUF1偏移地址送DIADD DI,2MOV CX,3REP MOVSB;字符传送指令,重复3次因为月份缩写为3个字母RETSUB1 ENDPCODES ENDSEND START心得体会:该实验主要是想实现从键盘输入一个二位十进制的月份数(01~12),然后显示出相应的英文缩写名,首先是要对十二个月份的英文缩写进行编排,然后实现输入、查找、输出。
微机原理键盘控制与显示实验报告

专业:电气工程及其自动化姓名: _________实验报告学号: _______日期: ___ _____地点: ____ ________课程名称: ________微机原理(实验)___________指导老师: ____徐习东 _______成绩:__________________实验名称: ______ 键盘控制与显示_______实验类型: _____软件实验 ______同组学生姓名:__________一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得【实验目的】1.通过实验掌握 TMS320F2812 通用输入 / 输出管脚直接控制外围设备的方法2.了解发光二极管的控制编程方法。
3.了解 SPI 的使用。
4.了解如何使用 GpioA 口进行数据的锁存5.通过实验掌握 TMS320F2812 的扩展端口接收外围设备信息的方法6.了解键盘的使用原理及编程方法【实验内容】1.按键显示程序,对按键记录次数,以二进制显示在16 个 LED 上。
2.定时器编程,并用按键控制各位时分秒,使其能完成加减操作【实验仪器】TMS320F2812数字信号处理器与学生用集成板。
【实验步骤】1.撰写代码2.调试代码3.实现功能【实验代码】一、定时器①宏定义和全局变量定义然后同时定义了全局变量,包括时、分、分析:这段代码是初始宏定义,用于定义按键对应的编码与地址,秒,按键编码, LED 编码和控制位。
②共阳字形码分析:由于这次实验要用到数码管,所以我们要定义一个数码管共阳端字形码,使每一个代码对应一种显示状态。
③SPI 初始化子程序分析:这一段是本次实验的重点,就是SPI 初始化。
1 )SPICCR :用于控制SPI 的状态,上下降沿发送,还有几位的数据。
其中第7 位,即 SPICCR.6 是控制SPI 在上下沿发送, 1 代表下降沿,2 代表上升沿;第8 位,即 SPICCR.7 是控制复位的,0 代表为复位状态;低 4 位控制数据长度,长度等于n+1 。
微机原理实验

微机原理实验一、实验目的:1、应用学过的汇编语言编写简单程序,将汇编语言在编程中实际应用。
2、掌握汇编语言的编辑、汇编、连接、调试等基本方法。
3、灵活应用各种语句实现要求的程序功能。
4、在实验中进一步掌握并熟练应用汇编语言,理解常用指令、伪指令及存储空间分配等二、实验内容:从键盘取得一串字符显示在屏幕上,然后将这串字符以输入的反序再显示一遍,并统计这字符串中‘A’的个数,显示在屏幕上。
附加要求:可以从键盘输入需要统计的字符,并统计这字符串中这个字符的个数,显示在屏幕上。
三、流程图:四、实验程序:DA TAS SEGMENTPASS DB 20 ;预留20个字节的空间存放输入的字符BLK1 DB 'SHU RU ZI FU CHUAN: $' ;在屏幕上要显示的提示语句BLK2 DB 'SHU RU ZI FU : $'BLK3 DB 'SHU LIANG SHI: $'BLK4 DB 'FAN ZHUAN HOU: $'DA TAS ENDS;********以上是数据段定义,下面开始代码段************CODES SEGMENTASSUME CS:CODES,DS:DA TASSTART: MOV AX,DA TASMOV DS,AX ;实现ASSUME中的承诺;****************************************************MOV AH,09H ;字符串输出功能09HLEA DX,BLK1INT 21H;**********显示第一句提示语*************************MOV AH,0AH ;字符串输入功能0AHLEA DX,PASSINT 21H;********以上完成字符串输入并显示出来***************MOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H;*********以上实现回车换行***************************MOV AH,09HLEA DX,BLK4INT 21H;*******输出BLK4中定义的内容,提示为反转后字符串***************MOV CL,PASS+1 ;PASS+1处是实际输入的字符个数MOV CH,0 ;CH置0,CX为循环的次数也就是输入的字符个数MOV DL,PASS+1MOV DH,0 ;DX同样是字符个数,用于后面的加法运算LEA SI,PASS+2 ;PASS+2处为实际输入字符的开始位置;S0: DEC SI ;SI不断减1,指针指向地址不断前移,也就反向了输出刚才输入的字符串MOV AH,02H ;显示输出功能02HMOV DL,[SI] ;输出指针所指向单元中的内容INT 21HLOOP S0;**********以上用循实现了字符串的反转后输出功能***************MOV AH,2MOV DL,0DHINT 21HMOV DL,0AHINT 21H;***********回车换行*******************MOV AH,09HLEA DX,BLK2INT 21H;**********显示提示语BLK2输入要查找的字符的提示语输出************************MOV AH,01H ; 有回显的输入,显示的是输入的要查找字符INT 21HMOV CL,PASS+1XOR CH,CHLEA SI,PASS+2XOR DL,DL ;和前面相同CX设置了循环次数,SI指向第一个字符S1: CMP AL,[SI] ;进行字符比较,是和Al比较,若相同则计数加1,不同则比较下一个JNZ NEXTINC DL ;DL记录的是比较过程中相同的字符数NEXT: INC SI ;指向下一个字符LOOP S1MOV BL,DL ;DL记录的数量给BL后面语句输出之前要用到DL;*******通过以上循环将所有字符比较一遍得到数量******************************* MOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21H;*******************回车换行**************************MOV AH,09HLEA DX,BLK3INT 21H;*****输出提示语BLK3相同字符的数量**************************MOV DL,BLADD DL,30H ;计数加30H是为了转换成ASC码输出。
输入输出显示(微型计算机原理与接口技术)

北华航天工业学院课程设计报告(论文)设计课题:输入输出显示专业班级:学生姓名:指导教师:设计时间:北华航天工业学院电子工程系微机原理课程设计任务书指导教师:教研室主任:年月日内容摘要本设计的关键在于正确地使用堆栈。
首先将字符依次压入堆栈,等待结束字符“.”,当接收到结束字符时,从堆栈中依次弹出字符并显示。
由于堆栈的特点是先入后出,正好实现了输入字符的倒序显示。
在编程过程中要设置一个计数器,统计输入的字符,以便从堆栈中弹出的字符和输入的字符相等,以免出错。
关键词:字符入栈出栈倒序目录一、设计思路 (1)二、方案设计与论证 (1)三、程序设计过程 (1)四、流程图 (1)五、程序 (2)六、性能测试与分析 (3)七、结论 (3)八、心得体会 (4)九、参考文献 (4)一、设计思路首先将字符依次压入堆栈,等待结束字符“.”,当接收到结束字符时,从堆栈中依次弹出字符并显示。
由于堆栈的特点是先入后出,正好实现了输入字符的倒序显示。
在编程过程中要设置一个计数器,统计输入的字符,以便从堆栈中弹出的字符和输入的字符相等,以免出错。
二、方案设计与论证用“先进后出”的设计思路,使用堆栈技术,结合DOS的中断调用,实现输入字符串的倒序显示,具体实现将在下面程序中介绍。
三、程序设计过程首先,定义堆栈段、数据段、代码段,然后定义标号,主程序开始,指定各个段所对应的寄存器,用1号功能单个字符串输入,用CX计数,判断是否为‘.’,是则退出,将输入的字符串入栈到AX,循环输入,知道遇到‘.’为止。
当遇到‘.’时,开始出栈,用2号功能单个字符输出,直到CX等于0。
在出栈之前,调用子函数实现输出回车换行,程序结束。
输入一串字符串,遇到‘.’,则在下一行倒序输出。
四、流程图五、程序STACKS SEGMENT STACKDW 100 DUP(?) STACKS ENDSDATA SEGMENTDATA ENDSCODE SEGMENTORG 100HASSUME CS:CODE,DS:DATA,SS:STACKS START:MOV AX ,STACKSMOV SS,AXMOV AX,DATAMOV DS,AXMOV CX,0T0: MOV AH,1INT 21HCMP AL,'.'JE NEXTINC CXPUSH AXJMP T0NEXT: CALL HUANZZZ: POP DXMOV AH,2INT 21HDEC CXCMP CX,0JNZ ZZZMOV AH,4CHINT 21HHUAN PROC NEARMOV DL,0DHMOV AH, 02HINT 21HMOV DL,0AHMOV AH,02HINT 21HRETENDPCODE ENDSEND START六、性能测试与分析1、程序编辑完成后,编译、生成成功,且无错误和警告。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。