chang.asm

来自「好东西!!自家漫漫的研究」· 汇编 代码 · 共 48 行

ASM
48
字号
DATA SEGMENT
						KBDATA 			DB	51 DUP(?)
						NEWLINE     DB  0DH,0AH,'After Chang:',0DH,0AH,'$'
DATA ENDS

CODE SEGMENT
						ASSUME CS:CODE,DS:DATA	
						ORG 100H
		START:	MOV AX,DATA                            ;Link ds to data
						MOV DS,AX
						XOR BX,BX                              ;Clear bx
						
						MOV AH,1H
		INTPUT:	INT 21H                                ;Invoke 21 int
						CMP AL,13                              ;If enter goto output
						JE  OUTPUT
						CMP AL,97                              ;Less than 'a' store it
						JB  STORE
						CMP AL,122                             ;Large than 'z' store it
						JA  STORE
						XOR AL,20H                             ;Else upcase it
		
		STORE:	MOV KBDATA[BX],AL                      ;Store it in KBDATA				
						INC BX                                 ;Add bx by 1
						JMP INTPUT                             ;Loop it
						
		OUTPUT: LEA DX,NEWLINE                         ;Give dx the string's address 
						CALL OUTSTR                            ;Call subprograme
						MOV CX,BX                              ;Give the loop number
						XOR BX,BX
						
						MOV AH,02H
		PRINT:  MOV DL,KBDATA[BX]                      ;Call int 21H's 2H function
		        INC BX
						INT 21H
						LOOP PRINT
									
						MOV AH,4CH
						INT 21H
						
		OUTSTR  PROC NEAR                               ;Output string
						MOV AH,09H
						INT 21H
						RET
		OUTSTR  ENDP
						
CODE ENDS
			END START	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?