exp910.asm
来自「汇编语言 参考书 包含作业与答案 从入门到精通 通俗易懂」· 汇编 代码 · 共 94 行
ASM
94 行
STACK SEGMENT PARA STACK
DW 100h DUP(?)
STACK ENDS
DATA SEGMENT PARA
T_STRING DB 'File Edit Search View Options Help',00h
ATTR1 DB 70H
ATTR2 DB 7FH
ATTR3 DB 74H
DATA ENDS
CODE SEGMENT PARA
ASSUME CS:CODE,DS:DATA,SS:STACK
MAIN PROC FAR
MOV AX,DATA
MOV DS,AX
MOV AH,0FH
INT 10H ;GeT Video mode
CMP AL,03H
JZ CLR_SCR
MOV AX,0003H
INT 10H
CLR_SCR:MOV AX,0B800H
MOV ES,AX
MOV DI,0
CLD
MOV CX,80*25
CLD
MOV AX,0F20H
REP STOSW
CALL PAUSE
MOV DI,0 ;di=line*80+col l,c=0,0--24,79
MOV SI,OFFSET T_STRING
CLD
LP1: LODSB
STOSB
INC DI
CMP AL,00H
JZ SET_ATTR
JMP SHORT LP1
SET_ATTR:CALL PAUSE
MOV DI,1
MOV CX,80
MOV AL,ATTR1
LP2: STOSB
INC DI
LOOP LP2
CALL PAUSE
MOV DI,0
MOV CX,80
LP3: MOV AL,ES:[DI]
CMP AL,'A'
JB CON1
CMP AL,'Z'
JA CON1
MOV AL,ATTR2
MOV ES:[DI+1],AL
CON1: ADD DI,2
LOOP LP3
CALL PAUSE
MOV DI,0
MOV CX,80
LP4: MOV AL,ES:[DI]
CMP AL,'A'
JB CON2
CMP AL,'Z'
JA CON2
MOV AL,ATTR3
MOV ES:[DI+1],AL
CON2: ADD DI,2
LOOP LP4
CALL PAUSE
MOV AX,4C00H
INT 21H
MAIN ENDP
PAUSE PROC
MOV AH,0
INT 16H
RET
PAUSE ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?