马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 奥普瓯江 于 2018-6-30 15:53 编辑
(1)程序如下assume cs:code
data segment
?
data ends
code segment
start: mov ax, data
mov ds, ax
mov bx, 0
jmp word ptr [bx + 1]
code ends
end start
若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义那些数据
答:应该在data段中定义dw 0,dw每次在内存中申请2个字节的空间,所以jmp word ptr 一次取的是一个字2个字节是可以满足的
(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],
mov [bx + 2],
jmp dword ptr ds:[0]
code ends
end start
补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令
答:mov [bx], 0
mov [bx + 2], cs
内存中一共储存了2个字或称之为4个字节,jmp段间跳转,cs等于高位字节ip等于低位字节
(3)用Debug查看内存,结果如下:
2000:1000 BE00 06 00 00 00 ..........
则此时,CPU执行指令mov ax, 2000h
mov es, ax
jmp dwordptr es:[1000h]
后,(CS )= ?, (IP) = ?
答:(CS) = 0006,(IP)= 00BE |