[請益] 關於 writestring 奇怪問題
之前寫一個簡單的小程式,要產生10個隨機英文字母到字串中。
可是我發現有點問題,和觀念有點初入。翻書沒獲得簡答...以下是Code
-------------------------------------------
Include Irvine32.inc
.data
source dword 10 dup(0)
.code
main proc
mov ecx,10
mov esi,0
L1 :
mov source[esi],'A'
inc esi ; Correct
add esi,type source ; Error
Loop L1
mov edx,offset source
call writestring
exit
---------------------------------------------
這個程式是剛剛打過精簡版的,之前的被測試到不成樣子。
如果是執行黃色那條(inc 1 byte ) 可以完整印出10個 A
反之紅色的話(add 4 bytes) 反而會出錯! 只印一個 A
以正常陣列來說,應該是增加一個資料型態(Type or 4)
可是這個程式,不管資料型態如何。都只能用 Inc ESI
PS.(mov esi,offset source 一樣一次只可加 1 byte)
因為試了很久沒答案,拿去問敝校教授:說不清楚怎麼會這樣OTZ
不知道是不是 WRITESTRING 的問題
希望能有人幫解惑了 感恩~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.134.242.141
推
12/17 20:32, , 1F
12/17 20:32, 1F
推
12/17 20:54, , 2F
12/17 20:54, 2F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):