【发布时间】:2019-07-25 03:53:25
【问题描述】:
我想制作一个程序,从用户那里获取 10 个字符并将它们保存在一个向量 DATA 中,但是我得到了错误
无法添加相对数量
在mov byte ptr DATA[pos], al 尝试存储值时。
如何解决这个错误?
.model small
.stack 100h
.data
DATA db 10 dup(?)
cont db 010h
pos db 0h
msg db 10,13,7, 'Input: ', '$'
.code
mov ax, @data
mov ds, ax
mov es, ax
mov ah, 09h
lea dx, msg
int 21h
cicle:
mov ah, 01h
int 21h
mov byte ptr DATA[pos], al ;Save ASCII char in position pos in DATA
inc pos
dec cont
jnz cicle
【问题讨论】:
-
DATA[pos]并不像您认为的那样。它的实际含义是[address of DATA + address of pos]。你似乎想要类似mov bx,pos,move byte ptr [DATA+bx],al -
用
movzx bx,byte ptr pos代替mov bx,pos,因为pos是一个字节。