|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- ;检测点9.1
- ; 1.程序如下:
- assume cs:code
- data segment
- db 0 ;因为jmp程序已加1,所以cs:ip只想第一条指令,data段中应该定义0为数据。
- data ends
- code segment
- start: mov ax,date
- mov ds,ax
- mov bx,0
- jmp word ptr [bx+1]
- coode ends
- end start
- ; 2.程序如下:
- assume cs:code
- data segment
- dd 12345678H
- date ends
- code segment
- start: mov ax,date
- mov ds,ax
- mov bx,0
- mov [bx],bx ;因为前面属于低地址ip,所以设置为0
- mov [bx+2],cs ;加2后属于高地址,直接赋值cs
- jmp dword ptr ds:[0]
- code ends
- end start
- ;执行后即为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)= 0006H ,(ip)= 00BEH
- ;因为前面属于低地址,后面属于高地址,所以ip为00BEH,cs为0006H
复制代码 |
|