;彙編一點點提高5——編寫乙個程式實現將資料段中儲存在string處到num處的字串進行分類統計,然後將結果存入以lett;er、digit和other為名的儲存單元中,並以十進位制顯示出來datas segment
;此處輸入資料段**
string db '
12abcde#3aaaa 456789143!@y(78)=(1)
'len equ $-string
string1 db
'letter=$
'string2 db
'digit=$
'string3 db
'other=$
'letter db
0digit db
0other db
0datas ends
stacks segment
;此處輸入堆疊段**
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
start:
mov ax,datas
mov ds,ax
;此處輸入**段**
lea bx,
string
mov cx,len
bagin:
mov ax,[bx]
cmp al,30h
jb lower ;比0小就跳到lower
cmp al,39h
ja higher ;比9大就跳到higher
jmp digit1
lower:
cmp al,20h
ja other1
jmp over
higher:
cmp al,41h ;比a小就跳到oher1
jb other1
cmp al,5ah ;比z大就跳到higher1
ja higher1
jmp letter1
higher1:
cmp al,61h
jb other1 ;比a小就跳到oher1
cmp al,7ah
ja other1 ;比z大就跳到higher1
jmp letter1
jmp over
digit1: ;數字加1
inc digit
jmp over
letter1: ;字母加1
inc letter
jmp over
other1: ;其他加1
inc other
jmp over
over:
inc bx
loop bagin
show: ;顯示
lea dx,string1
mov ah,
9int
21h xor ax,ax ;等價於mov ax,
0;將ax初始化為0
mov al,letter
call display
call newline
lea dx,string2
mov ah,
9int
21h xor ax,ax
mov al,digit
call display
call newline
lea dx,string3
mov ah,
9int
21h xor ax,ax
mov al,other
call display
call newline
mov ah,4ch
int 21h
newline proc near ;輸出換行子程式
mov ah,
2mov dl,
13int
21h mov ah,
2mov dl,
10int
21h ret
newline endp
display proc near ;輸出十進位制數子程式
push bx
mov bl,
10 ; 執行ax/bl,al存放商,ah存放餘數
div bl
push ax
mov dl,al ;輸出十進位制十位
add dl,30h
mov ah,
2int
21h pop ax
mov dl,ah ;輸出十進位制個位
add dl,30h
mov ah,
2int
21h pop bx
ret
display endp
codes ends
end start
彙編一點點提高4
十進位制顯示非常巧妙 彙編一點點提高4 查詢字串中是否有空格,如有找出第乙個出現的位置用十進位制顯示,否則輸出no blank datas segment 此處輸入資料段 string db 12abcde 3 456789143 y 78 1 num equ string found db pla...
彙編程式設計一點點提高2
編乙個程式,要求把num單元存放的乙個8位二進位制數,在螢幕上顯示成16進製制數。datas segment 此處輸入資料段 num db 11001100b dch mess db b converted to h datas ends stacks segment 此處輸入堆疊段 stacks ...
彙編程式設計一點點提高2
編乙個程式,要求把num單元存放的乙個8位二進位制數,在螢幕上顯示成16進製制數。datas segment 此處輸入資料段 num db 11001100b dch mess db b converted to h datas ends stacks segment 此處輸入堆疊段 stacks ...