第九章答案

  • 格式:doc
  • 大小:26.00 KB
  • 文档页数:2

====Word行业资料分享--可编辑版本--双击可删====

源-于-网-络-收-集 检测点

(1) 程序如下。

assume cs:code

data segment

db 0,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

若要使程序中的jmp指令执行后,CS:IP指向程序的第一条指令,在data段中应该定义哪些数据?

(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],bx

mov [bx+2],cs

jmp dword ptr ds:[0]

code ends

end start

补全程序,使jmp指令执行后,CS:IP指向程序的第一条指令。

(3)用Debug查看内存,结果如下:

2000:1000 BE 00 06 00 00 00 ......

则此时,CPU执行指令:

mov ax,2000H

mov es,ax

jmp dword ptr es:[1000H]

后,

(CS)=? , (IP)=?

解: ====Word行业资料分享--可编辑版本--双击可删====

源-于-网-络-收-集 CS=0006H,IP=00BEH

检测点

补全编程,利用jcxz指令,实现在内存2000H段中找查第一个值为为0的字节,找到后,将它的偏移地址存储在dx中。

assume cs:code

code segment

start: mov ax,2000H

mov ds,ax

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

检测点

补全程序,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中。

assume cs:code

code segment

start: mov ax,2000h

mov ds,ax

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