組合語言實現字串的輸入,輸出

2021-08-25 14:15:24 字數 2455 閱讀 5364

1.了解

int 21h

09h

號中斷呼叫(輸出字串)

lea dx,字串的開頭

或       

mov dx,offset字串的開頭

mov ah,09h

int 21h

2.在定義字串的時候要在末尾加上

'$'

作為字串的結束標誌。

3.了解

int 21h

0ah

號中斷呼叫(輸入字串)

lea dx,字串的開頭

或       

mov dx,offset字串的開頭

mov ah,0ah

int 21h

4.在定義記憶體空間儲存字串時,類似於定義c語言的陣列

5.源**:

data   segment                               

input db "please input a string: ",'$'

output db "your input is: ",'$'

buffer db 20 ;預定義20位元組的空間

db ? ;待輸入完成後,自動獲得輸入的字元個數

db 20 dup(0)

crlf db 0ah, 0dh,'$'

data ends

stack segment stack

dw 20 dup(0)

stack ends

code segment

assume cs:code, ds:data, ss:stack

start:

mov ax, data

mov ds, ax

lea dx, input ;列印提示輸入資訊

mov ah, 09h

int 21h

lea dx,buffer ;接收字串

mov ah, 0ah

int 21h

mov al, buffer+1 ;對字串進行處理

add al, 2

mov ah, 0

mov si, ax

mov buffer[si], '$'

lea dx, crlf ;另取一行

mov ah, 09h

int 21h

lea dx, output ;列印提示輸出資訊

mov ah, 09h

int 21h

lea dx, buffer+2 ;輸出輸入的字串

mov ah, 09h

int 21h

lea dx, crlf ;另取一行

mov ah, 09h

int 21h

mov ah, 4ch ;返回dos系統

int 21h

code ends

end start

6.程式輸出

7.有趣的是在組合語言中字串輸入的結束是以回車鍵,空格鍵不起結束作用。

字串的輸入輸出 彙編

彙編之字串的輸入輸出 一直只是認為知道彙編是怎麼一回事,沒真正的好好寫過,現在再來好好了解一點 datas segment ent db 13,10,用於輸出回車符 s size db 100 輸入字串的最大長度 s len db 實際輸入字元的長度 string db 101 dup datas ...

組合語言學習記錄 輸入輸出字串

data segment buff db 255 緩衝區,用於存放字串 db db 255 dup crlf db 0ah,0dh,回車換行 data ends code segment assume ds data,cs code start mov ax,data 取資料段存入ds中 mov d...

組合語言實現Hello World的輸出

16位的組合語言實現 hello world!的難度在於 1.了解int 21h 的9號中斷呼叫 lea dx,字串的開頭或mov dx,offset 字串的開頭 mov ah,09h int 21h 2.在定義字串的時候要在末尾加上 作為字串的結束標誌。3.源 data segment 定義資料段...