📄 l2.asm
字号:
DATA SEGMENT
INS DB 'PLEASE PUT IN A STRING:',0AH,0DH,'$'
INL DB 'PLEASE PUT IN THE LETTER YOU WANT:',0AH,0DH,'$'
OUTMES1 DB 'THE TURN OVER STRING IS:',0AH,0DH,'$'
OUTMES2 DB 'THE COUNT OF THE LETTER YOU WANT IS:',0AH,0DH,'$'
STRLEN DB ?
STRING DB 100
DB ?
DB 100 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK'STACK'
STR DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START PROC FAR
BEGIN:
PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
RD1: MOV DX,OFFSET INS
MOV AH,09H
INT 21H
PUTS:MOV DX,OFFSET STRING
MOV AH,0AH
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DX,OFFSET STRING+2
MOV AH,09H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
; MOV DX,OFFSET INL
; MOV AH,09H
;INT 21H
;MOV DL,0DH
;MOV AH,02H
; INT 21H
;MOV DL,0AH
; MOV AH,02H
; INT 21H
MOV BX,OFFSET STRING
INC BX
MOV CL,[BX]
MOV STRLEN,CL
MOV DL,0DH
MOV AH,02H
INT 21H
MOV DL,0AH
MOV AH,02H
INT 21H
SHR CL,1
MOV BX,0
TURN:MOV AL,STRING[BX]+2
PUSH BX
MOV DX,WORD PTR STRLEN
SUB DX,BX
MOV BX,DX
XCHG AL,STRING[BX-1]+2
POP BX
MOV STRING[BX]+2,AL
INC BX
LOOP TURN
MOV DX,OFFSET OUTMES1
MOV AH,09H
INT 21H
MOV BX,OFFSET STRING
ADD BX,2
MOV DX,BX
MOV AH,09H
INT 21H
COUNT:MOV DX,OFFSET INL
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
MOV LETTER,AL
LEA BX,STRING
ADD BX,2
MOV CL,STRLEN
MOV AL,0
LOP: MOV DL,[BX]
CMP LETTER,DL
JNZ DONE
INC AL
DONE: INC BX
LOOP LOP
OUTL: OR AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
RET
START ENDP
CODE ENDS
END BEGIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -