組合語言實驗設計三 分類統計字元的個數

2021-10-06 20:24:42 字數 2344 閱讀 2642

datas segment

string1 db'please input a string:$' ;輸入提示資訊

string2 db'number of chars:$' ;各類字元提示資訊

string3 db'number of digits:$'

string4 db'number of others:$'

chars db 0;字母

digit db 0;數字

others db 0;其他

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

lea dx,string1 ;顯示輸入提示資訊 please input a string

mov ah,09h

int 21h

mov cx,100 ;循壞

l1: mov ah,01h ;中斷呼叫,單字元輸入

int 21h ;輸入符號的ascⅱ**在al暫存器中

cmp al,0dh ;若輸入回車符則結束

jz over2

cmp al,30h ;若<30h(0), others++

jb other

cmp al,39h ;若》39h(9),跳轉進一步比較

ja higher1

jmp digital ;digit++

higher1: cmp al,41h;

jb other

cmp al,5ah;

ja higher2

jmp char ;

higher2: cmp al,61h

jb other

cmp al, 7ah

ja other

jmp char

jmp over

other:inc others ;others++

jmp over ;比較結束

char: inc chars ;alphal++

jmp over ;比較結束

digital:inc digit

jmp over ;比較結束

jmp over ;比較結束

over: nop

loop l1 ;迴圈,輸入下一字元

over2:call endline

lea dx,string2 ;字元中的輸出 number of chars

mov ah,09h

int 21h

xor ax,ax

mov al,chars

call display

call endline

lea dx,string3 ;字元中的輸出 number of digits

mov ah,09h

int 21h

xor ax,ax

mov al,digit

call display

call endline

lea dx,string4 ;字串的輸出 number of others

mov ah,09h

int 21h

xor ax,ax

mov al,others ;將統計的效字送ax

call display ;呼叫輸出兩位數字的子程

mov ah,4ch

int 21h ;輸出換行符

endline proc near;控制輸出格式

mov ah,02h

mov dl,0ah

int 21h

mov ah,02h

mov dl,0dh

int 21h ;輸出換行符

retendline endp

display proc near;輸出兩位數字的子程式(輸出兩位數字為十進位制)

mov bl,10

div bl ;ax/bl,al=商,ah=餘數

push ax ;儲存ax中的資訊

mov dl,al

add dl,30h

mov ah,02h

int 21h

pop ax

mov dl,ah

add dl,30h

mov ah,02h

int 21h ;輸入十位數

retdisplay endp ;顯示結束

codes ends

end start

組合語言 實驗三

一 實驗目的 掌握彙編程式設計規範,熟悉程式設計環境。二 實驗內容 1 編寫子程式把字串中的小寫字母轉變為大寫字母 參見教材實驗11 2 編寫0號中斷處理程式,使得在除法溢位發生時在螢幕中間顯示 divide error 參見教材實驗12 請預習第12章並完成實驗,時間不夠則在課後完成 三 實驗步驟...

《組合語言》實驗 實驗

注意 db定義位元組型別變數,乙個位元組資料百佔1個位元組單度元,讀完乙個,偏移量加1 dw定義字型別變問量,乙個字資料佔2個位元組單元,讀完乙個,權偏移量加2 dd定義雙字型別變數版,乙個雙字資料佔4個位元組單元,讀完乙個,權偏移量加4 一開始用了乙個暫存器表示所有項,但是後來發現四個資料佔的位元...

組合語言實驗1 2

小寫字母變為大寫字母 data segment notic db please input the word 0ah,0dh data ends code segment assume cs code,ds data start mov ax,data mov ds,ax 填入ds mov cx,1...