彙編輸入字串常見的實驗題

2021-07-27 22:21:53 字數 1706 閱讀 3989

(1)輸入10字串並且將他們顯示出來

datas

segment

mesg

db'input character string',0dh,0ah,'$'

bufdb

20 ;這裡的20為指定存放字元的個數(理論上的)

db ? ;這的?可變,實際存放字元的個數(系統自動計算)

db20dup(?) ;這裡的20是你在資料段開闢的空間

crlf

db 0ah,0dh,'$'

datas

ends

stacks

segment

db200

dup(?)

stacks

ends

codes

segment

assume

cs:codes,ds

:datas,ss

:stacks

start

:mov

ax,datas

movds,ax

movah,9h

movdx,offset

mesg

int21h ;這段功能的作用是輸出字串mesg

movah,10 ;10號中斷,接收輸入字串,此時dx為存放字串的有效位址

leadx,buf

int21h

leadx,crlf

movah,9

int21h ;這段功能是再一次輸出換行回車

moval,buf+1 ;獲取字串中字元的個數

addal,2

movah,0

movsi,ax

movbuf[si],0h ;暫存器間接定址

leadx,buf+2 ;輸出實際的字串

movah,9

int21h

movah,4ch

int21hcodes

ends

endstart

(2)變形。

輸入10個數並且將他們反向輸出(利用了堆疊的先進先出的特點)

datas segment

;此處輸入資料段**

datas ends

stack segment

dw 50 dup(?)

stack ends

codes segment

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

start:

mov ax,stack

mov ss,ax

mov cx,10

l1:mov ah,01h

int 21h

push ax

loop l1

mov dl,0ah

mov ah,02h

int 21h

mov dl,0dh

mov ah,02h

int 21h

mov cx,10

l2:pop dx

mov ah,02h

int 21h

loop l2

;此處輸入**段**

mov ah,4ch

int 21h

codes ends

end start

字串的輸入輸出 彙編

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

彙編之輸出輸入的字串

assume cs code,ds data 宣告 data segment char1 db 11,0,11 dup 0 11,0,11 三個數的意義是限制輸入的字元個數,實際輸入的個數和限制輸出的字元個數 char2 db 0ah,0dh,char2內的內容分別是回車0ah,換行0dh,符 da...

彙編原始碼學習5 輸入字串

輸入9個以內的字元並輸出 data1 segment string db 10,10 dup 編譯時去掉此處括號中的內容 第1個單元存放限制輸入的字元個數,含回車符13 第2個單元存放實際輸入的字元個數,不含回車符13 實際的字串從第3個單元開始 data1 ends stack1 segment ...