I believe many people learn DOS assembly by reading this book?
When introducing addressing modes inside, it explains that the sentence mov ax, is: assign the content at ds: to ax, that is, if the value at ds: is 3020, then after executing this sentence, ax = 3020H.
Recently, when debugging a DOS program, I found that instructions in the form of mov xx,, add xx, (where there are all numbers) are all interpreted by the assembler as mov xx,xxxxh, that is, directly give the value inside the square brackets to the register! That is, after mov ax, is executed, ax = 2000H. Don't believe it? You can compile a few sentences yourself, and then load them into the debugger to check the code in memory, and you will find that after executing this sentence, ax = 2000h.
Unless there is a problem with my machine or the programming software (masm6.11, tasm5, Tdebug). Otherwise, please tell me how to understand this addressing mode.
When introducing addressing modes inside, it explains that the sentence mov ax, is: assign the content at ds: to ax, that is, if the value at ds: is 3020, then after executing this sentence, ax = 3020H.
Recently, when debugging a DOS program, I found that instructions in the form of mov xx,, add xx, (where there are all numbers) are all interpreted by the assembler as mov xx,xxxxh, that is, directly give the value inside the square brackets to the register! That is, after mov ax, is executed, ax = 2000H. Don't believe it? You can compile a few sentences yourself, and then load them into the debugger to check the code in memory, and you will find that after executing this sentence, ax = 2000h.
Unless there is a problem with my machine or the programming software (masm6.11, tasm5, Tdebug). Otherwise, please tell me how to understand this addressing mode.




