彙編一點點提高5

2021-09-24 20:39:08 字數 2627 閱讀 7116

;彙編一點點提高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 ...