作者LPH66 (-858993460)
看板Programming
标题Re: [问题] 条件回圈指令的疑问
时间Mon May 10 01:39:16 2010
※ 引述《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