Can somebody explain what
mov byte [es:eax], dl
would mean in NASM x86 assembler?
Specifically the [es:eax] part.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
The syntax of [es:eax] indicates an indirect move in which es:eax register combination contains an address and the byte stored in register dl will be stored at that address.
es is a segment register and eax is a general purpose register used in the address calculation. I assume this is a 16 bit address model so the combination of the segment register and the eax register provides the complete 32 bit address for a far pointer.
See this web page on basic instructions and addressing.
And this web page on effective addresses as well as this one on addresses.