INT 21H终端部分功能号

	;程序名: A1.asm
	;功  能: 1. 输入一个字符,显示输出, 并转化为二进制码再输出
	;		 2. 输入一个字符串,
MLENGTH = 128
DATA SEGMENT
	MESS1	DB 'INPUT KEY:$'
	MESS0	DB 'PLEASE INPUT:$'
	MESS2	DB 'INPUT STRING:$'
	MESS3	DB 'STRING :$'
	BUFF	DB	MLENGTH
			DB ?
			DB MLENGTH DUP (0) 
DATA ENDS
CODE SEGMENT 
	 ASSUME CS:CODE,  DS:DATA
START:  MOV 	AX,DATA
		MOV 	DS,AX
		MOV		DX,OFFSET MESS0
	    CALL	DISMESS
		MOV 	AH,1 		;1号功能,读入一个字符
	    INT 	21H
	    CALL 	NEWLINE 		;回车换行
	    MOV		DX,OFFSET MESS1
	    CALL	DISMESS
	    MOV 	AH,2		;2号功能是显示一个字符
	    MOV		DL,AL
	    INT 	21H
	    CALL NEWLINE 		;回车换行\
	    MOV 	BL,AL
	    MOV 	CX,8		;8NEXT:   SHL 	BL,1		;依次析出高位
	    MOV		DL,30H
	    ADC		DL,0
	    MOV		AH,2
	    INT		21H			;显示
	    LOOP	NEXT		;循环8MOV		DL,'B'
	    MOV 	AH,2
	    INT		21H
	    CALL 	NEWLINE 		;回车换行
	    MOV		DX,OFFSET MESS2
	    CALL	DISMESS
	    CALL 	NEWLINE 		;回车换行
	    MOV		DX,OFFSET BUFF
	    MOV		AH,0AH
	    INT 	21H
	    MOV		BH,0					;
	    MOV		BL,BUFF+1 				;初始化BX,BUFF 第二字节 串的大小给BX
	    MOV 	BYTE PTR BUFF[BX+2],'$'	;BUFF 串缓冲区的最后一个字符'回车'改为'$'
	    MOV 	DH,0					;
	    MOV 	DL,BUFF+2				;将串的地址给DX作为参数给9号功能使用
	    CALL 	NEWLINE 		;回车换行
	    MOV 	DX,OFFSET MESS3
	    CALL	DISMESS
	    MOV		DX,OFFSET BUFF+2
	    CALL	DISMESS
	    MOV 	AH,4CH
	    INT		21H
;
	;子程序名: NEWLINE
	;功    能: 形成回车和换行
	;入口参数:;出口参数:;说    明: 通过显示回车符形成回车,通过显示换行符形成换行
NEWLINE	PROC
		PUSH	AX
		PUSH	DX
		MOV		DL,0DH		;回车符的ASCII码是0AH
		MOV		AH,2		;显示回车符
		INT 	21H
		MOV		DL,0AH		;换行符的ASCII码是0AH
		MOV		AH,2		;显示换行符
		INT		21H			
		POP		DX			
		POP		AX			
		RET
NEWLINE	ENDP

	;子程序名: delay
	;功	   能: 做延迟处理
	;出入参数:DELAY PROC
	  PUSH	AX
	  PUSH	DX
	  MOV	DX,10H
	  XOR	AX,AX
S:	  SUB	AX,1
	  SBB	DX,0
	  CMP	AX,0
	  JNE	S
	  CMP	DX,0
	  JNE	S
SEND:	POP DX
		POP AX
		RET	  
DELAY ENDP

	;子程序名: DISMESS
	;功    能: 用来显示串
	;入口参数: DX为串首地址
DISMESS PROC
		MOV	AH,9
		INT	21H
		RET
DISMESS ENDP
		
CODE ENDS
END START
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页