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...