Re: [問題] 條件迴圈指令的疑問
※ 引述《jimmy5566 (56好棒)》之銘言:
<code 恕刪>
: 以上的執行結果會出現Nonzero data found!
: 如果希望能顯示出陣列"第一個不為0的整數是1"
: 那要在這段程式中加上什麼程式碼呢?
你有 printf 可以用嗎? (就是你能不能連結 C Runtime library)
如果有 那 extern 宣告一下就可以呼叫了
大概就像是
extern C printf: proc
.data
str2 DB 'Nonzero data %d found!',0dh,0ah,0
.code
;....
movzx eax, WORD PTR [esi]
push eax ;總之就是把找到的值推進去 這樣 printf 就找得到
push OFFSET str2
call printf
add esp,8 ;printf 要自己清推入的參數 推了兩個所以加8
也就是這裡實際上是相當於在 C 裡寫了
printf("Nonzero data %d found!\n",value); 這樣的感覺
如果沒有 printf 的話...你得自己寫一個數字轉字串出來 (這個不太好寫...)
然後找個空間自己生成你要印的字串
大致上也許是用個 rep movs 把前半段字串搬到 buffer 裡面
然後呼叫你自己寫的數字轉字串 把生成的字串丟進 buffer
再把後半段用 rep movs 搬過去
最後就能印了
--
◢ ˊ_▂▃▄▂_ˋ. ◣ ▅▅ ▅▅ ι●╮ █▄▄▄▄▄
▍./◤_▂▃▄▂_◥ \'▊ HARUHI █████ <■┘ ▄▄▄▄▄▄▄
▎⊿ ◤◤◥█◥◥█Δ ISM By-gamejye ¢|\ ▌▌▌▌▌▄▌▌
▏ζ(▏●‵◥′●▊)Ψ ▏ █ ⊿Δ ▄▄▄ ▄▄▄▄
█/|▊ 〃 、 〃▋ |\ ▎ ハルヒ主義 █▄▄▄█▄▄
◥◥|◣ ‵′ ◢/'◢◢S.O.S 世界を大いに盛り上げるための涼宮ハルヒの団
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.92
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):