|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
监测点10.4
- mov ax,6 ;ax=6
- call ax ;sp=-2,ip=6
- inc ax
- mov bp,sp ;bp=-2
- add ax,[bp] ;ds:[bp]=05;ax=11
复制代码
监测点10.5
1.
- assume cs:code
- stack segment
- dw 8 dup(0)
- stack ends
- code segment
- start:
- mov ax,stack ;将栈值赋值给ax
- mov ss,ax ;ss=栈段地址
- mov sp,16 ;sp=16
- mov ds,ax ;ds=栈段地址
- mov ax,0 ;ax=0
- call word ptr ds:[0eh] ;ds:[0eh]指向本身,00为nop像下执行
- inc ax ;ax=1
- inc ax ;ax=2
- inc ax ;ax=3
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
执行后ax=3
2.
- assume cs:code
- data segment
- dw 8 dup(0)
- data ends
- code segment
- start:
- mov ax,data ;将data赋值给ax
- mov ss,ax ;栈的段地址为data
- mov word ptr ss:[0],offset s ;将标号s赋值给数据单元0处以字的形式
- mov ss:[2],cs ;将当前cs段地址赋值给数据单元2处
- call dword ptr ss:[0] ;取出ip为ss[0]处的偏移地址,cs为ss[2],也就是指向标号s处
- nop
- s:
- mov ax,offset s ;ax=s处标号值
- sub ax,ss:[0ch] ;这里是ax-0
- mov bx,cs ;bx为cs
- sub bx,ss:[0eh] ;这里是bx-0
- mov ax,4c00h
- int 21h
- code ends
- end start
复制代码
这里bx为cs段地址的值,ax为标号的值 |
|