📄 程序10.txt
字号:
程序10: 从BUF1,BUF2为首制的两个字符串分别同基础P,W的个数,并将它们分别存入COUNTP和COUNTW单元
(字符串长度分别为COUNT1,COUNT2).
要求:
(1)编出在某字符串中统计指定字符个数的子程序
调用方式: CALL SEEK
DW ? (字符串首址)
DB ? (字符串长度)
返回(被统计的字符个数在BX中)
(2) 编出调用子程序SEEK完成本任务的主程序
(3) 主,子程序在同一模块,不同段中
;---------------------------------------------------------------
DATA SEGMENT
BUF1 DB 'SWPPPWUP'
COUNT1 EQU $-BUF1
BUF2 DB 'WUACWPZW'
COUNT2 EQU $-BUF2
COUNTP DW (?)
COUNTW DW (?)
PAT DW (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
MAIN PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV BX,CODE
MOV ES,BX
CALL FAR PTR SEEK
DW BUF1
DB COUNT1
DB 'P'
MOV COUNTP,DX
CALL FAR PTR SEEK
DW BUF2
DB COUNT2
DB 'W'
MOV COUNTW,DX
RET
MAIN ENDP
CODE ENDS
SEEK_CODE SEGMENT
ASSUME CS:SEEK_CODE,DS:DATA
SEEK PROC FAR
MOV PAT,BP
MOV BP,SP
PUSH DI
PUSH SI
PUSH CX
PUSH AX
PUSH BX
PUSHF
MOV DI,[BP]
MOV SI,ES:[DI]
MOV CL,ES:[DI+2]
MOV CH,ES:[DI+3]
ADD DI,4
MOV [BP],DI
BEGIN: XOR BX,BX
DONE1: MOV AL,[SI]
DEC CL
INC SI
CMP AL,CH
JNE DONE2
ADD BX,1
DONE2: CMP CL,0
JNE DONE1
MOV DX,BX
POPF
POP BX
POP AX
POP CX
POP SI
POP DI
MOV BP,PAT
RET
SEEK ENDP
SEEK_CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -