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环境中,因此您应该可以使用“调试”。它可以显示内存区域,以便您可以验证内容。