我正在组装8086处理器的程序,但我有一个疑问。我想将一个单词移动到我创建的字符串,但编译器显示错误:错误A2004:常量值太大。
声明:
Fich db 'menu.txt',0
这样做:
mov Fich,'menu.txt'
有人能帮助我吗?
此致 马可
答案 0 :(得分:2)
在8086汇编程序中,您无法使用mov
语句将一串字节移动到内存位置。
您可以使用movsb
语句移动字符串,方法是加载SI
寄存器中的源地址,DI
寄存器中的目标地址以及CX
中字符串的长度。 {1}}注册,然后最后调用MOVSB
。
这是一个简单的例子:
TARGET db 80 dup(0)
SOURCE db 'Hello', 0
mov si, offset SOURCE ; address of SOURCE
mov di, offset TARGET ; address of TARGET
mov cx, 6 ; number of bytes to move (size of SOURCE)
rep movsb ; move cx number of bytes from SOURCE to TARGET