組合語言問題,菜鳥請求高手,組合語言問題,輸出了正確結果,但是下面還輸出了許多亂碼??

時間 2021-08-14 23:01:27

1樓:湯旺河邊

dos功能呼叫9號功能:顯示以ds:dx開始的字串,當遇到乙個$時,結束顯示。樓主程式中,

lea si,aa

add si,5

mov byte ptr [si],'$'

把字串中第4個字元改為:$,致使顯示前3個字元之後,結束顯示,這是導致「只是輸出前3個」的癥結所在。把這三條指令的後兩條刪掉即可。

下面,我就從lea si,aa 指令開始,直至顯示完整字串,給出優化的程式段,指令全部用大寫字元。

lea si,aa

mov cl,[si+1]

xor ch,ch

mov word ptr [si],0d0ahadd si,cx

inc si

inc si

mov byte ptr [si],'$'

mov ah,9

int 21h

2樓:

data segment

str db 'please input a string: $'

buf db 80,0,80 dup(0)data ends

code segment

assume cs:code, ds:datastart:

mov ax,data

mov ds,ax

lea dx,str

mov ah,9

int 21h

call crlf

lea dx,buf

mov ah,0ah

int 21h

call crlf

lea si,buf

cldmov cl,[si+1]

mov ch,0

or cx,cx

jz exit

add si,2

lop:lodsb

mov ah,0eh

int 10h

loop lop

exit:

mov ah,0

int 16h

mov ah,4ch

int 21h

crlf:

mov ax,0e0dh

int 10h

mov al,0ah

int 10h

retcode ends

end start

組合語言問題,輸出了正確結果,但是下面還輸出了許多亂碼??

3樓:匿名使用者

最後要加入乙個

mov ah,4ch

nt 21h

來返回,否則你的程式會繼續跑下去,也不知道跑到什麼地方去了

4樓:匿名使用者

string db "hello !$"

字串漏了

結束字元

什麼是組合語言,什麼是彙編和組合語言?

叢依波弘瀾 組合語言 assembly language 是面向機器的程式設計語言。在彙編語閤中,用助記符 memoni 代替操作碼,用地址符號 symbol 或標號 label 代替地址媽。這樣用符號代替機器語盲的二進位制碼,就把機器語音變成了組合語言。於是組合語言亦稱為符號語言。使用組合語言編寫...

什麼是組合語言,什麼是彙編和組合語言?

組合語言就是計算機語言,它是有0,1組成的.通俗的說就是我們人和計算機交流的語言. 介於機器語言和高階語言之間的一種 什麼是彙編和組合語言? 揚落 彙編語copy言是一種低階計算bai機程式語言,說 低階du 並不是指語言的功能和複雜程度,而是它zhi出現在計算機發展史dao的早期,但現在仍廣泛應用...

組合語言程式設計問題編寫組合語言程式。能每隔10秒顯示數字分別為

org 0000h 數碼管共陰 ajmp main org 000bh t0ms equ not 50000 100 ms 晶振 6.000 mhz pjsbz equ 20h pjsbzy equ 21h pst0 mov tl0,low t0ms t0 中斷 mov th0,high t0ms ...