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

我的博客

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

[2011-10-20 21:10] 第九章检测题

检测点9.1
(1)程序如下,如要使程序中的jmp执行后,cs:ip指向程序的第一条指令,在data段中应该定义哪些数据:
assume cs:code
data segment
dw 0,0
data ends
code segment
start:mov ax,data
        mov ds,ax
        mov bx,0
        jmp word ptr [bx+1] 
code ends
end start
(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],bx
        mov [bx+2],cs
        jmp dword ptr ds:0 
code ends
end start
(3)用debug查看内存,结果如下:
2000:1000 BE 00 00 06 00......
则此时,cpu执行指令:
mov ax,2000h
mov es,ax
jmp dword ptr es:[1000h]
后,(cs)=0006h,(ip)=00beh

检测点9.2
    补全程序,利用jcxz指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址储存在dx中。
assume cs:code
code segment
start:        mov ax,2000h
        mov bx,0
s:        mov ch,0
        mov cl,[bx]
        jcxz ok
        inc bx
jmp short s
ok:        mov dx,bx
        mov ax,4c00h
        int 21h
code ends
end start

检测点9.3
补全程序,利用loop指令,实现在内存2000h段中查找第一个值为0的字节,找到后,将它的偏移地址储存在dx中。
assume cs:code
code segment
start:        mov ax,2000h
        mov bx,0
s:        mov cl,[bx]
        mov ch,0
        inc cx
        inc bx
        loop s
ok:        dec bx
        mov dx,bx
        mov ax,4c00h
        int 21h
code ends
end start
评论次数(0)  |  浏览次数(416)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码