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