あなたが探している命令は、LODSD
「文字列から DWORD をロードする」という意味だと思います。ただし、レジスタを選択することはできません。ポインタは にESI
あり、宛先レジスタはEAX
です。
バイト、ワード、またはダブルワードがメモリ位置から AL、AX、または EAX レジスタに転送された後、EFLAGS レジスタの DF フラグの設定に従って、(E)SI レジスタが自動的にインクリメントまたはデクリメントされます。(DF フラグが 0 の場合、(E)SI レジスタはインクリメントされます。DF フラグが 1 の場合、ESI レジスタはデクリメントされます。) (E)SI レジスタは、バイト操作で 1 ずつインクリメントまたはデクリメントされます。ワード演算の場合は 2、ダブルワード演算の場合は 4 です。
申し訳ありませんが、今、頭の中に Intex 構文が根付いています。フラットな 32 ビット保護モードを想定すると、次のようになります。
mov esi, _source_data_ ; ESI points to source data
cld ; Clear the direction flag
; (ESI will increment)
lodsd ; Essentially mov eax, [ds:esi]
; add esi, 4