Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 汇编语言中的比较_Loops_Assembly_Compare - Fatal编程技术网

Loops 汇编语言中的比较

Loops 汇编语言中的比较,loops,assembly,compare,Loops,Assembly,Compare,我需要比较字符串的下一个字符是否是行尾($)。这是我的代码: data segment string db 256 dup ('$') data ends ... n_loop equ 256 mov cx, n_loop mov bx, offset string start_loop: mov dl, [bx] mov ah, 2 int 21h mov dl, 32 mov ah, 2 int 21h inc bx

我需要比较字符串的下一个字符是否是行尾(
$
)。这是我的代码:

data segment
string db 256 dup ('$')
data ends
...
n_loop equ 256
    mov cx, n_loop
    mov bx, offset string
start_loop:
    mov dl, [bx] 
    mov ah, 2
    int 21h
    mov dl, 32 
    mov ah, 2
    int 21h
    inc bx
    cmp word ptr [bx], '$' ; this is where I think I must to compare it
    loopne start_loop
    je fin
fin:
    ...


但不幸的是,我对汇编语言太陌生,我的代码无法工作。事实上,我甚至不知道将
bx
$

进行比较的想法是否正确。您正在将16位值(bx的单词ptr destination)与8位立即数“$”进行比较。这可能并不完全符合您的意图…

您正在比较16位值(BX的字ptr目的地)和8位立即数“$”。这可能并不完全符合您的意图…

您正在比较16位值(BX的字ptr目的地)和8位立即数“$”。这可能并不完全符合您的意图…

您正在比较16位值(BX的字ptr目的地)和8位立即数“$”。这可能并不完全符合您的意图…

您正在比较16位值(BX的单词ptr destination)和8位立即数“$”之间的差异。那可能不是你想要的…哦,你是对的<代码>cmp字节ptr[bx],“$”有效!谢谢!很高兴听到它现在起作用了,我也做了回答。:-)你能告诉我这是找到终点的正确方法吗?因为我认为应该有更多的系统特性,没有其他明显错误的东西向我跳出来。我建议在调试器中运行它,这样您就可以进行验证。似乎您处于DOS环境中,因此您应该可以使用“调试”。它可以显示内存区域,以便您可以验证内容。您正在比较16位值(BX的字ptr目标)和8位立即数“$”。那可能不是你想要的…哦,你是对的<代码>cmp字节ptr[bx],“$”有效!谢谢!很高兴听到它现在起作用了,我也做了回答。:-)你能告诉我这是找到终点的正确方法吗?因为我认为应该有更多的系统特性,没有其他明显错误的东西向我跳出来。我建议在调试器中运行它,这样您就可以进行验证。似乎您处于DOS环境中,因此您应该可以使用“调试”。它可以显示内存区域,以便您可以验证内容。您正在比较16位值(BX的字ptr目标)和8位立即数“$”。那可能不是你想要的…哦,你是对的<代码>cmp字节ptr[bx],“$”有效!谢谢!很高兴听到它现在起作用了,我也做了回答。:-)你能告诉我这是找到终点的正确方法吗?因为我认为应该有更多的系统特性,没有其他明显错误的东西向我跳出来。我建议在调试器中运行它,这样您就可以进行验证。似乎您处于DOS环境中,因此您应该可以使用“调试”。它可以显示内存区域,以便您可以验证内容。您正在比较16位值(BX的字ptr目标)和8位立即数“$”。那可能不是你想要的…哦,你是对的<代码>cmp字节ptr[bx],“$”有效!谢谢!很高兴听到它现在起作用了,我也做了回答。:-)你能告诉我这是找到终点的正确方法吗?因为我认为应该有更多的系统特性,没有其他明显错误的东西向我跳出来。我建议在调试器中运行它,这样您就可以进行验证。似乎您处于DOS环境中,因此您应该可以使用“调试”。它可以显示内存区域,以便您可以验证内容。