幫忙寫彙編程式,要求從鍵盤輸入的字串(以回車結束),並將字串末尾加上結束標誌然後

2022-03-09 05:05:49 字數 1279 閱讀 8337

1樓:匿名使用者

因為你輸出的字串是:80,?,?????

lea dx,buffer

int 21h

把它改為:

lea dx,buffer+2

int 21h

2樓:匿名使用者

你的程式有兩個錯誤

1。呼叫mov ah,0ah int21h 後dx指向的是緩衝區的開始,不是結尾,因此你加$的位置應該是:緩衝區開始地址+2+輸入位元組數

2。顯示時,dx應該指向字串的開始,而不是緩衝區的開始,兩者差兩個位元組。

除錯好的程式如下:

datas segment

buffer db 80

db 0

db 80 dup (0);此處輸入資料段**datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

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

mov ah,0ah

mov dx,seg buffer

mov ds,dx

lea dx,buffer

int 21h

inc dx

mov si,dx

mov cl,byte ptr [si] ;輸入的位元組數mov ch,0

add si,2

add si,cx ;字串結尾mov byte ptr [si],'$'

push ds

pop es

mov di,offset buffer

mov ax,0a0dh ;回車換行stosw ;把緩衝區的開始兩個位元組填充成回車換行,是為了讓結果和輸入分別在兩行上顯示

mov ah,09h

lea dx,buffer

int 21h

mov ah,4ch

int 21h

codes ends

end start

求助!用c語言編寫一個程式,從鍵盤上輸入一串符號(以回車鍵為結束)將其以字串存入一位陣列(接補充)

3樓:伍拾步

這樣???

#include

void main ()

4樓:手機使用者

#include

main()

彙編程式 接受鍵盤輸入字元,若輸入為字母,則顯示 L ,若為數字,則顯示 D ,其他的則顯示 O

直接寫主程式哈 start mov ah,1 int 21h cmp al,30h jb other cmp al,39h ja next num1 mov dl,d mov ah,2 int 21h jmp exit next cmp al,41h jb other cmp al,z jb chr...

求彙編程式 從鍵盤上輸入十六進位制數,將其轉換成十進位制數並

assume cs code,ds datasdatas segment hex db 4 dup 0 error db 13,10,input error datas ends code segment start mov ax,datas mov ds,ax mov ah,1h mov bx,o...

寫程式要求從鍵盤輸入整數然後採用冒

include int main max a 0 min a 0 for i 0 i 10 i if a i max max a i if a i min a i for i 0 i 10 i return 0 int main int i,j,t,a 10 printf please input ...