1,解:
①MOV AX,1234H 立即数寻址
②MOV AX,BX 寄存器寻址
③MOV AX,[SI] 寄存器间接寻址 物理地址为 0B100H
④MOV AX,[1234H] 直接寻址 物理地址为 0C234H
⑤MOV AX,[BX+400H] 基址寻址 物理地址为 0B700H
⑥MOV AX,[BX+SI] 基址加变址寻址 物理地址为 0B400H
⑦MOV AX,[BX+DI+0400H] 带位移的基址加变址寻址 物理地址为 0B900H
2,解:
SF ZF AF PF CF OF
①ADD AX,BX (AX)= 8410H 1 0 1 0 0 1
②SUB AX,BX (AX)= 5C2EH 0 0 0 1 0 0
③AND AX,BX (AX)= 1011H 0 0 * 1 0 0
④OR AX,BX (AX)= 73FFH 0 0 * 1 0 0
⑤XOR AX,BX (AX)= 63EEH 0 0 * 1 0 0
⑥IMUL BL (AX)= FE2FH * * * * 1 1
⑦MUL BH (AX)= 024DH * * * * 1 1
⑧SHR AX,2 (AX)= 1C07H 0 0 * 0 1 *
⑨SAR AX,2 (AX)= 1C07H 0 0 * 0 1 *
⑩SHL AX,2 (AX)= C07CH 1 0 * 0 1 *
*表示该标志位未定义
3.解,
① 下一条将要执行的指令地址为1075:0010
② 下一条将要执行的指令地址为1075:1000
下一条将要执行的指令地址为1075:1000
注:此题错的同学比较多,实际上,指令
JMP 1000H
意味着转移到的地址就是1000H,但是在该指令对应的机器语言编码中地址值并不是1000H,而是当前IP加递增值与1000H之间的差(偏移量),该偏移量按8位或16位进行编码,这取决于差的大小。
下面是用Debug对该指令进行验证的过程:

注意用T命令执行JMP 1000H指令后,IP的值已经变为1000,因此下一条将要执行的指令地址为1075:1000,其物理地址为10750H
再注意到JMP 1000H的机器码为E9FD0C,其中E9为操作码,操作数为FD0C,这是一个三字节的指令,因此IP的递增值为3,当前IP加递增值为303H,303H与1000H之间的差为0CFD,该值在指令的机器码中被编码为FD0C
由汇编语言指令到机器语言的翻译工作是由汇编程序(汇编器)完成的,我们可以不管这一过程以后遇到这样的题,直接给出结果就可以了,至于指令对应的机器码,不管也罢。