level 3
基本要求:从键盘取得一串字符显示在屏幕上,然后将这串字符以输入的反序再显示一遍,并统计这字符串中‘A’ 的个数,显示在屏幕上。
附加要求:可以从键盘读取需要统计的字符,并统计这字符串中这个字符的个数,显示在屏幕上。
2011年11月21日 08点11分
1
level 12
现给你写一个
;基本要求:从键盘取得一串字符显示在屏幕上,然后将这串字符以输入的反序再显示一遍,并统计这字符串中‘A’ ;的个数,显示在屏幕上。
;编译方法:
;ml /c this.asm
;link16 this;
;=====================================================================
code segment
assume cs:code,ds:data,es:data,ss:stack
start:
mov ax,data
mov ds,ax
mov es,ax
mov ah,0Ah
mov dx,offset mystr
int 21h
;回车换行
mov ah,2
mov dl,0Dh
int 21h
mov dl,0Ah
int 21h
;-------------------------
mov cx,10
xor ax,ax ;ax清零
mov al,count ;要输出的数
mov si,5 ;pstring的下标,初始值指向最后
mov pstring[si],'$' ;将pstring的最后一个符赋为串结束符
again:
xor dx,dx ;dx:ax 要配对,清零
div cx ;(dx:ax)/cx
2011年11月21日 09点11分
8
level 12
上边编排错了,重搞了一下,对不住啊
code segment
assume cs:code,ds:data,es:data,ss:stack
start:
mov ax,data
mov ds,ax
mov es,ax
mov ah,0Ah
mov dx,offset mystr
int 21h
;回车换行
mov ah,2
mov dl,0Dh
int 21h
mov dl,0Ah
int 21h
;屏幕输出
;------------------------
;反序输出输入的串
xor cx,cx
mov cl,mystr.count
mov ah,2
getNext:
push cx
pop si
mov dl,mystr.chars[si-1]
int 21h
mov al,mystr.chars[si-1]
cmp al,'A'
jnz @@10
inc count
@@10:
loop getNext
;其他输出信息
;-------------------------
mov cx,10
xor ax,ax ;ax清零
mov al,count ;要输出的数
2011年11月21日 10点11分
10