匯編程序輸出亂碼
- 資格考試
- 2022-04-19 19:44:14
匯編想輸出數(shù)字卻輸出亂碼
你這個語句的功能是輸出字符串,但是你需要自己設(shè)置字符串的地址,ds:dx=字符串的地址,而且這個字符串還要以$結(jié)束。目前亂碼是應(yīng)該是指向了一個未知的地方導(dǎo)致的。 下面的代碼因為沒有編譯環(huán)境,因此未做驗證,僅做參考 assume cs:cseg,ds:dseg dseg segment db 'test$' dseg ends cseg segment start: mov ax,dseg mov ds,ax mov dx,0 mov ah,9 int 21h cseg ends end start匯編語言程序輸出的一直是亂碼,求高手找錯
樓主的程序,可以輸入150個字符,卻只留了50個字符的空間! 另外,輸入的是一個一個的字節(jié),排序的時候卻用““字””來排序,邏輯上有錯。 最后,顯示字符串,其末尾,應(yīng)該有"$",否則就要顯示出亂碼。 以前寫過,現(xiàn)成的,可供參考: ;================================================ assume cs:code, ds:data data segment msg1 db 'Before sort: $' crlf db 0dh, 0ah, '$' msg2 db 'After sort : $' ;-------------------------匯編語言輸出字符串亂碼??
匯編語言 輸入字符串并輸出所有非字母字符的前后導(dǎo)字符 ----------------------同志你好,我是CSDN問答機器人小N,奉組織之命為你提供參考答案,編程尚未成功,同志仍需努力!匯編語言的一個小程序,剛開始學(xué)習(xí),為什么這個程序輸出是亂碼?
肯定不對了。 LEA DX,L0 MOV AH,09H INT 21H 這段話的作用是,輸出DX指向的一段以$結(jié)尾的字符串,而不是用來輸出單個字符的。 比如: dseg segment msg db 'hello, wordl$'; dseg ends 那么你在程序里可以: lea dx, msg mov ah, 9 int 21h 這樣可以輸出字符串'hello,world' 要輸出單個字符,應(yīng)該是把字符放到dl中輸出,例如: mov dl, 'a' mov ah, 2 int 21h 下面是照你的程序改的: CODES SEGMENT START: MOV AH,01H INT 21H C新人求問,16位匯編向屏幕輸出字符串為何會出現(xiàn)亂碼
MOV AH,9 INT 21H 執(zhí)行上面調(diào)用,輸出以DS:DX為首地址,"$"為結(jié)尾的字符串到顯示器中。 szHello db "Hello!!!" 沒有以$結(jié)尾,所以把Hello!!!后面的不是'$'的字節(jié)也輸出來了,因為這些字節(jié)不是字符,所以就成了亂碼。 改成szHello db "Hello!!!$"就好了。展開全文閱讀