看板 CSIE_ASM 關於我們 聯絡資訊
之前寫一個簡單的小程式,要產生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
pj2:writestring應是以byte為單位, null為字串 結尾 12/17 20:32
pj2:dword array拿來做 byte string (writestring的輸入) 有點怪 12/17 20:54