[英]emu8086 can't print numbers on emulator screen
我試圖在emu8086的仿真器屏幕上顯示兩個數字相乘的結果,當我使用小的8位數字時,在運行代碼時結果可以很好地打印,但是在16位數字的情況下,我在仿真器屏幕上得到0,我不確定我的代碼或模擬器本身有什么問題,我是匯編的新手,並且在過去的一個小時里我一直在嘗試解決它,這就是我的代碼
include 'emu8086.inc'
name "multiply_two_16_bit_numbers"
org 100h
mov ax, 512 ;
mov bx, 512 ;
mul bx
call print_num
ret
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
end
希望你們能幫助我,謝謝。
請注意,512 * 512 = 262144 = 40000h,這是一個32位數字,低16位為零,這大概就是您要打印的內容。 這種形式的mul
指令將結果的前16位放入寄存器dx
,您應該在那里找到4。 如果要打印整個結果,則當然需要32位打印功能,並且必須正確傳遞參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.