汇编程序 输入一个字符串 统计A出现的个数 放到AX中 以下是我的程序,运行结果不对,请大师帮忙指正!
来源:百度知道 编辑:UC知道 时间:2024/06/15 03:17:43
data segment
buf db 100 dup(?);
data ends
stack segment
buf1 db 100 dup (?)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
lea si,buf1
call enter
xor ax,ax
lea si, buf1
call count
stop:
mov ah,4ch
int 21h
enter proc
push ax
xor ax,ax
next:
mov ah,01h
int 21h
cmp al,1bh
jz exit
mov [si],al
inc si
jmp next
exit:
inc si
mov al,'$'
mov [si],al
pop ax
buf db 100 dup(?);
data ends
stack segment
buf1 db 100 dup (?)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
lea si,buf1
call enter
xor ax,ax
lea si, buf1
call count
stop:
mov ah,4ch
int 21h
enter proc
push ax
xor ax,ax
next:
mov ah,01h
int 21h
cmp al,1bh
jz exit
mov [si],al
inc si
jmp next
exit:
inc si
mov al,'$'
mov [si],al
pop ax
;符合题目要求
code segment
assume cs:code,ds:code
org 100h
start:
push cs
pop ds
lea dx,mes
mov ah,9
int 21h ;提示
lea dx,buf
mov ah,0ah
int 21h ;输入串
lea si,buf1
mov cl,cnt
xor ch,ch
xor dx,dx ;计数器清0
jcxz Q2
Q0:lodsb
cmp al,'A'
jnz Q1
inc dx ;;计数器+1
Q1:loop Q0
Q2:mov ax,dx ;个数放到AX
mov ah,4ch
int 21h
mes db 'Input a String: $'
buf db 100
cnt db 0
buf1 db 100 dup(?)
code ends
end start
;符合题目要求
code segment
assume cs:code,ds:code
org 100h
start:
push cs
pop ds
lea dx,mes
mov ah,9
int 21h ;提示
lea dx,buf
mov ah,0ah
int 21h ;输入串
lea si,buf1
mov cl,cnt
xor ch,ch
xor dx,dx ;计数器清0
jcxz Q2
Q0:lodsb
cmp al,'A'
jnz Q1
inc dx ;;计数器+1
Q1:loop Q0
Q2:mov ax,dx ;个数放到AX
mov ah,4ch
int 21h