【发布时间】:2017-02-06 06:04:28
【问题描述】:
我正在尝试用 abc 字符串的反向填充一个空字符串 rev,但它在第 20 行给出错误。这是错误的参数,或者它可能是一个未定义的 var。
.model small
.data
abc db "i eat an apple a day$"
rev db ?
.code
main proc
mov ax,@data
mov ds,ax
;mov cx,size
mov bx,offset abc
;add bx,size
dec bx
;add bx,cx
mov dx,offset abc
copy:
mov al,byte ptr[bx]
;Error over here:(20) wrong parameters: MOV byte ptr[dx],al
;(20) probably it's an undefined var: byte ptr[dx]
mov byte ptr[dx],al
dec bx
inc dx
loop copy
mov byte ptr[dx],'$'
mov dx,offset rev
mov ah,9
int 21h
mov ah,4ch
int 21h
main endp
end main
我正在尝试用 abc 字符串的反向填充一个空字符串 rev,但它在第 20 行给出错误。这是错误的参数,或者它可能是一个未定义的 var。
【问题讨论】:
-
只有部分寄存器可以用作16位汇编中的地址。参见例如stackoverflow.com/questions/32351554/…
-
这个答案也与您相关,因为您对
rev db ?是 “空字符串” 有同样的误解,而它只是单个未定义字节(1最多ASCII字符):stackoverflow.com/a/40580889/4271923