汇编网首页登录博客注册
tolearn的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
友情链接

[2010-10-16 09:18] 检测点9.1

(1)CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?
程序如下:
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 word ptr [bx].1前,(IP)=bH。由题意知,执行此代码后,(IP)=0。
从而易知,可在data段中定义:dw 0,0,0。
(2)补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。
assume cs:code
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 dword ptr ds:[0]可知,(cs)=((ds)*16+0+2),(IP)=((ds)*16+0)。
由题意易知(IP)=0,cs不变即可。因此,mov [bx],0   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)=0006H,(IP)=00beH 。
评论次数(0)  |  浏览次数(240)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码