1樓:鯤鵬展翅
中的信被系統退回。只好把原程式貼這了。
data segment
msg1 db "please input a string: $"
msgd db 0dh,0ah,"the number of digit is: $"
msgl db 0dh,0ah,"the number of letter is: $"
msgo db 0dh,0ah,"the number of other is: $"
string db 80,?,80 dup(?);執行時輸入一串字元
digit db 0 ;存數字個數
letter db 0 ;存字母個數
other db 0 ;存其它字元個數
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea dx,msg1
mov ah,9
int 21h
lea dx,string
mov ah,0ah
int 21h
lea si,string
mov cl,[si+1]
mov ch,0
add si,2
next:
mov al,[si]
cmp al,'0'
jb nexto;小於'0'轉到其它
cmp al,'9'
ja nextu;大於'9'轉到大寫字母
inc digit ;'0'-'9'之間,數字個數加1
jmp next1;轉到下乙個數
nextu:cmp al,'a'
jb nexto ;小於'a'轉到其它
cmp al,'z'
ja nextl ;大於'z'轉到小寫字母
inc letter ;'a'-'z'之間,大寫字母個數加1
jmp next1;轉到下乙個數
nextl:cmp al,'a'
jb nexto ;小於'a'轉到其它
cmp al,'z'
ja nexto;大於'z'轉到其它
inc letter ;'a'-'z'之間,小寫字母個數加1
jmp next1;轉到下乙個數
nexto:inc other ;其他字元個數加1
next1:
inc si
loop next
tj:mov bh,0
lea dx,msgd
mov ah,9
int 21h
mov bl,digit
call disp
lea dx,msgl
mov ah,9
int 21h
mov bl,letter
call disp
lea dx,msgo
mov ah,9
int 21h
mov bl,other
call disp
mov ah,1
int 21h
mov ah,4ch
int 21h
disp proc near
mov cx,10d
call dec_div
mov cx,1d
call dec_div
retdec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
retdec_div endp
disp endp
code ends
end start
2樓:
data segment
tips db 'please input a string: ',0dh,0ah,'$'
buffer db 82,0,80 dup(0)result db 0dh,0ah,' letter='
letter dw 0 ;字母計數器
r2 db ' dight='
dight dw 0 ;數字計數器
r3 db ' other='
other dw 0 ;其它計數器
r4 db 0dh,0ah,'$' ;串結束標記data ends
code segment
assume cs:code,ds:datastart:
mov ax,data
mov ds,ax
lea dx,tips;提示
mov ah,9
int 21h
lea dx,buffer;輸入源串
mov ah,0ah
int 21h
cldlea si,buffer ;指向輸入串
add si,2
t0:cmp byte ptr [si],0dh ;從串中找回車結束標記
jz show
_lop:lodsb ;取一位元組
cmp al,'0'
jb q1
cmp al,'9'
ja q1
inc dight ;數字+1
jmp next
q1:cmp al,'a'
jb q2
cmp al,'z'
ja q2
inc letter ;字母+1
jmp next
q2:cmp al,'a'
jb q3
cmp al,'z'
ja q3
inc letter ;字母+1
jmp next
q3:inc other ;其他字元+1
next:jmp t0
show:
mov ax,letter
aam ;二化十
xchg ah,al ;調序
or ax,3030h ;轉換成待顯示的ascii碼mov letter,ax ;送入記憶體
mov ax,dight
aamxchg ah,al
or ax,3030h ;同上
mov dight,ax
mov ax,other
aamxchg ah,al
or ax,3030h ;同上
mov other,ax
lea dx,result ;=mov dx,offset result
mov ah,9 ;顯示統計計數結果
int 21h
;下面這句,方便從資源管理器看
;沒這句,螢幕一閃就沒了
mov ah,0 ;暫停
int 16h
mov ah,4ch
int 21h
code ends
end start
一道C語言程式題求解,一道C語言程式設計題求解
float y w 就是每一項的值,即 1 2 1 4 1 8,要加項小於10的 6,也就是要 float y w的絕對值大於10的 6才迴圈,在不用abs函式的求絕對值的時候,假定要x的絕對值 x可能為正數或負數 大於10的 6,那麼自然就是x z1 同為正數 或者x z1 同為負數 其實這題 太...
求解一道C語言程式設計題目,求一道C語言程式設計題
說一下思想 先定義乙個int min 1000000 或者其他大於4的數,因為陣列 專最大就4,按行屬列遍歷陣列所有元素,min min a i j a i j min 輸出的min即為所求 include define n 2 int getmin int a n int m,int n int ...
一道C語言程式設計題求解一道簡單的C語言程式設計題
樓主,抄樓上不太會說話,不要理,bai等等我貼出 沒有其他語言基礎du的c語言初學者起zhi步是慢了一dao點,但是要渣油 include int main return 0 dim arr斐波 那契數bai 列du 19 as integer arr斐波那 zhi契數dao列回 答 0 1 arr...