1
使用nasm32,x86彙編語言。我想從數據段中讀取一些數字。如何使用x86程序集從數據段中讀取數據?
.model small
.stack
.data
DATA1 DB 53H,"$"
DATA2 DB 17H,"$"
.code
.startup
mov dx, @data
mov dx, offset DATA1
add dl,30h
mov ah, 02h
int 21h
mov dl, dh
add dl, 30h
mov ah, 02h
int 12h
.exit
end
此代碼返回剛剛
我應該DATA1 53H(= 83(十進制))值將返回。 (以ascii字符)
但奇怪的數字是回報。發生了什麼?我不明白這個結果。
我該如何解決這個問題?
但錯誤返回。 「不允許立即操作數」 –
int21h,AH = 02h'將字符輸出爲dl,您將dx初始化爲DATA1的地址,而不是該地址上的數據。第三,53h是'S',你爲什麼期望它打印'20'? –
謝謝你的回答!那麼,如何讀取DATA1的地址數據呢? 'MOV DX,偏移量DATA1'表示DX < - DATA1的地址?哦,53h是'S',但是,我的意思是數字(十進制,83)。我想打印DATA1的數字,如'83'。所以,我增加了30h來製作ascii代碼。 –