作者Jimmy0398 ()
看板CSIE_ASM
标题[请益] 关於 writestring 奇怪问题
时间Sun Dec 17 00:34:10 2006
之前写一个简单的小程式,要产生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
1F:推 pj2:writestring应是以byte为单位, null为字串 结尾 12/17 20:32
2F:推 pj2:dword array拿来做 byte string (writestring的输入) 有点怪 12/17 20:54