ret | pop IP |
retf | pop IP; pop CS |
2、call使用
call 标号 | 相对偏移转移(16位) | push IP;IP=IP+偏移 |
call 16位reg | 绝对偏移转移 | push IP;IP=reg |
call word ptr 内存 | push IP;IP=内存 | |
call far ptr 标号 | 绝对段间转移 | push IP;push CS; CS=?; IP=?; |
call dword ptr 内存 |
1) 8位;乘数:AL;结果:AX;
2)16位;乘数:AX;结果:DX+AX;
4、程序状态字
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
|
|
| OF | DF | IF | TF | SF | ZF |
| AF |
| PF |
| CF |
5、各标志位
ZF | 零标志位 | 零=1 |
PF | 奇偶标志位 | 1的个数为偶数=1 |
SF | 符号标识位 | 负=1 |
CF | 进位标志位(无符号数) |
|
OF | 溢出标志位(有符号数) | 溢出=1 |
DF | 方向标志位 | 递增方向=1 / cld std |
IF | 中断屏蔽位 | 不响应可屏蔽中断=0 |
TF | 单步执行位 | 产生单步中断=1 |
6、cmp ax,bx:
ax=bx | je | zf=1 |
ax!=bx | jne | zf=0 |
ax<bx | jb | cf=1 |
ax>=bx | jnb | cf=0 |
ax>bx | ja | cf=0且zf=0 |
ax<=bx | jna | cf=1 或 zf=1 |
1) ((es)*16+(di))=((ds)*16+si)
2) CLD:DI=0:di++;si++;
3) STD:DI=1:di--;si--
4) 前面加rep与CX联用
5) 实例:将data1中的数据传到data2
mov ax,data1 ; 源地址
mov ds,ax
mov si,0
mov ax,data2 ; 目的地址
move s,ax
mov di,0
mov cx,XX ; 复制的字节数目
cld ; 正向传送
rep movsb ; 传送
8、debug标志位显示
标志 | 值为1时 | 值为0时 |
of | OV | NV |
sf | NG | PL |
zf | ZR | NZ |
pf | PE | PO |
cf | CY | NC |
df | DN | UP |