include io32.inc
.data
msg1  byte'input the string:',0
bufnum   =255
buffer   byte bufnum+1 dup(0)    ;内存空间
.code
start:
mov eax,offset msg1
call dispmsg          ;显示字符串
mov eax,offset buffer
call readmsg 
mov ecx,eax
xor ebx,ebx
encrypt:
mov eax,[ebx]         ;取一个数
cmp eax,'A'           ;和A比较大小
jc next               ;小于‘A’不用处理,转移到下一个
cmp eax,'z'           ;和‘z’做比较
jnc next              ;大于‘z’不用处理,转移下一个
cmp eax,'a'           ;和‘a’做比较
jc change             ;小于‘a’可能是大写,转移
add eax,4             ;大于‘a’小于‘z’加密
cmp eax,'z'           ;加密过后和‘z’比较
jnc first             ;大于z,超过了最后的字母,应减去26
jmp next              ;介于大写和小写之间,转移
change:cmp eax,'Z'    ;和‘Z’做比较
    jnc next          ;大于Z不用处理,转移下一个
    add eax,4         ;大于A小于Z加密
    cmp eax,'Z'       ;加密后和Z比较
    jnc first         ;大于Z,超过了最后的字母,应减去26
    jmp next          
first:sub eax,26      
next:
inc ebx
dec ecx
jnz encrypt
mov eax,offset buffer
     call dispmsg
exit 0
end start     


运行的时候没有错误,但是老弹出“内存不能为read”框框,改了很久都不行,请各位高人指点啊!!!