[請益] 關於 writestring 奇怪問題

看板CSIE_ASM作者時間19年前 (2006/12/17 00:21), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串1/3 (看更多)
之前寫一個簡單的小程式,要產生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
writestring應是以byte為單位, null為字串 結尾
12/17 20:32, 1F

12/17 20:54, , 2F
dword array拿來做 byte string (writestring的輸入) 有點怪
12/17 20:54, 2F
文章代碼(AID): #15X1q1WX (CSIE_ASM)
文章代碼(AID): #15X1q1WX (CSIE_ASM)