检测点9.1
(1)程序如下:
assume cs:code, ds:data
data segment
db ? ; (1)
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
jmp word ptr ds:[bx+1]
mov ax,4c00H
int 21H
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
答:(1) db 0,0,0
(2)程序如下:
assume cs:code,ds:data
data segment
dd 12345678H
data ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov [bx], [...] ; (1)
mov [bx+2],[....] ; (2)
jmp dword ptr ds:[0]
mov ax,4c00H
int 21H
code ends
end start
补全程序,使jmp指令执行后,CS:IP指向程序第一条指令
答:(1) mov word ptr [bx], offset start
(2) mov [bx+2],cs
(3)用Debug查看内存,结果如下:
2000:1000 BE 00 06 00 00 00
则此时,CPU执行指令:
mov ax,2000H
mov es,ax
jmp dword ptr es:[1000H]
后,(CS)=?,(IP)=?
答:(IP)=00BE (CS)=0006
- [assumechen] 呵呵,我把程序搞复杂了。谢谢! 07/12 23:58
- [fpamc] MOV BX,AX MOV AX,DX MOV DX,0 07/11 23:26
- [assumechen] 这个公式原来一直想不明白,总是觉得会溢出,直到看到这个贴子才转过来。 http://www.asm 07/11 21:19
- [assumechen] 谢谢! 07/11 21:16
- [fpamc] 对的。 07/09 23:04
- [assumechen] 谢谢 06/30 22:34
- [assumechen] 谢谢 06/30 22:33
- [fpamc] 对的。 06/30 10:26
- [fpamc] 恩对的, 06/30 10:24
- [assumechen] 是程序错了,把这一句: mov word ptr es:[0dH],ax ; 雇员的平 06/29 14:45