【发布时间】:2014-10-22 01:14:21
【问题描述】:
我正在做一个更大的项目,但我被字符串操作困住了。我的汇编文件包括数学协处理器操作(它以“FINIT”启动协处理器),但我认为它根本不应该干扰。 基本上,我有一些每个 50 字节长的字符串:
$s db 50 dup (?), '$'
_cte_14 db "hello world", '$', 39 dup (?)
我需要将存储在变量“_cte_14”中的值分配给变量“$s” 我尝试使用寄存器来临时存储值,如下所示:
mov cx, _cte_14
mov $s, cx
但我收到“操作数类型不匹配”错误。
由于我知道 AX、BX、CX、DX 寄存器只保存 16 位,我想也许我需要处理第一个字符串字符的内存地址,所以我尝试了:
mov bx, offset _cte_14
mov $s, bx
但同样的错误出现了。
我正在使用 TASM 为 x86 处理器进行编译。实现这一目标的正确方法是什么?
非常感谢。
【问题讨论】:
-
需要循环复制字符,或者使用字符串移动(
movsb)指令。