怀孕85天孩子性别图:汇编(帮忙)

来源:百度文库 编辑:高考问答 时间:2024/05/08 19:02:04
接受键盘输入,存入以buffer开始的缓冲区,以空格开始,以空格结束。计算字符串长度。输入查找字符串(3个字符)在buffer中查找该字符串。编程求出字符串出现的次数。
在屏幕上提示:选择“1”输入字符串
选择“2”显示字符串长度
选择“3”输入查找字符串,显示字符串出现的次数
选择“0”退出

我做了一份源程序,仅仅供参考,不过有一点:关于"以空格开始,以空格结束"这一点我没有做,其他方面都做了,我做的程序是选择"1"后,直接输入,回车换行结束.你要仿造的话,只要修改"1"号功能的代码,就可以了,很简单的,就自己动手吧.源代码如下:
;************************************************
;定义宏用来输入输出
INOUT MACRO STR,AA
PUSH DX
LEA DX,STR
MOV AH,AA
INT 21H
POP DX
ENDM
INOUT_1 MACRO A_1
MOV AH,A_1
INT 21H
ENDM
;************************************************
STACK SEGMENT STACK
DW 256 DUP(?)
STACK ENDS
;************************************************
DATA SEGMENT
N EQU 100
;第一个字符串
BUF DB N+1
COUNT DB 0
CHAR DB N+1 DUP('$')
;提示信息
PRESS DB 13,10,'PRESS 1--INPUT',13,10
DB 'PRESS 2--LENTH',13,10
DB 'PRESS 3--SEARCH',13,10
DB 'PRESS 0--EXIT',13,10
DB 'PLEASE PRESS 0--3:',13,10,'$'
TAB DW P0,P1,P2,P3 ;功能表
S_PRESS DB 'PLEASE INPUT THE STRING:',13,10,'$' ;提示信息
P_EX DB 13,10,'THE ANSWER IS:$'
;第二个字符串存储空间
S_BUF DB 10
S_COUNT DB 0
S_CHAR DB 10 DUP('$')
DATA ENDS
;************************************************
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
;程序主体
NEXT: INOUT PRESS,09H ;输出提示信息
INOUT_1 1 ;要求输入功能号
CMP AL,30H
JS NEXT
CMP AL,34H
JNS NEXT
LEA SI,TAB ;跳转功能执行程序
SUB AL,30H
SHL AL,1
MOV AH,0
ADD SI,AX
JMP [SI]
;进行第一号功能,输入字符串
P1: INOUT S_PRESS,09H
INOUT BUF,0AH
JMP NEXT
;二号功能,输出字符串长度
P2: MOV DL,COUNT
ADD DL,30H
INOUT P_EX,9
INOUT_1 2
JMP NEXT
;在长字符串中找短字符串
P3: INOUT S_PRESS,9H
INOUT S_BUF,0AH
MOV CL,COUNT
INC CL
MOV CH,3
LEA SI,CHAR
LEA DI,S_BUF+5
MOV BX,DI
MOV DL,30H
CMP_1: MOV DI,BX
MOV AL,CH
MOV AH,0
SUB DI,AX
MOV AL,BYTE PTR [DI]
MOV AH,BYTE PTR [SI]
INC SI
DEC CL
JZ S_PUT
CMP AL,AH
JZ XG
MOV CH,3
JMP CMP_1
XG: DEC CH
JNZ CMP_1
INC DL
MOV CH,3
JMP CMP_1
S_PUT: INOUT P_EX,9 ;输出结果
INOUT_1 2
JMP NEXT
;0号功能,退出
P0: INOUT_1 4CH
CODE ENDS
END START