自己做网站需要学什么软件常用网站开发软件
本文为学习书籍《汇编语言(第4版)》后的小结。
1、寄存器
| 序号 | 寄存器 | 描述 | 
| 1 | ax | 运算寄存器 | 
| 2 | bx | 地址寄存器,偏移地址 | 
| 3 | cx | 计数寄存器,loop的结束条件,jcxz的跳转条件 | 
| 4 | dx | 运算寄存器 | 
| 5 | cs | 段地址,指令执行段地址 | 
| 6 | ss | 段地址,栈的段地址 | 
| 7 | ds | 段地址,数据的段地址 | 
| 8 | es | 段地址,extra,扩展的段地址寄存器 | 
| 9 | ip | 偏移地址,instruction,指令偏移地址 | 
| 10 | sp | 偏移地址,stack pointer,栈偏移地址 | 
| 11 | si | 偏移地址,source,源 | 
| 12 | di | 偏移地址,destination,目的 | 
| 13 | bp | 偏移地址,base pointer,基地址 | 
| 14 | 标记寄存器 | 位代表标记,见标记位列表 | 
2、指令
|   指令 类型  | 指令 | 说明 | 
|   运 算  | add、adc | 加法,adc为带进位的加法 | 
| sub、sbb | 减法,sbb为带进位的减法 | |
| mul |   乘法:                 结果16位,存放在ax中; 结果32位,高位放在dx中,低位放在ax中。  | |
| div | 除法: 8位除法:被除数16位,放在ax中,结果al中存商,ah中存余数; 16位除法:被除数32位,dx存高16位,ax存低16位,结果ax存商,dx存余数  | |
| and | and al,00111011B | |
| or | or al,00111011B | |
| shl和shr | 逻辑左移与右移, 用0补位 | |
| inc | 自增1 | |
| dec | 自减1 | |
|   数 据 传 送  | mov | |
| movsb |   rep movsb 循环(cx)个字符的传送。 df=1(std),si和di自减  | |
| movsw | movsw 一个拷贝1个字(两个字节,32位),每次完成si和di +2或-2 | |
| rep | 与movsb或movsw搭配使用 | |
| push、pop | ||
| pushf、popf | push flag、pop flag | |
| dup | db 16 dup (0) 将此块内容设置为16个为0的字节 dw 16 dup (0) .....16个为0的字(2个字节) dd 16 dup (0) .....16个为0的双字(4个字节)  | |
|   转 移 指 令  | jmp | |
| jcxz | cx==zero跳转 | |
|   je、jb、ja、 jnb、jna、jne  | 与cmp搭配 | |
| loop | cx==0结束循环 | |
| call与ret | ip寄存器会push和pop | |
| int中断 与 iret | int: (1)取中断类型码n; (2)标志寄存器入栈; (3)IF=0,TF=0; (4)CS入栈,IP入栈; (5)修改CS和IP至n号中断码对应的地址 iret: (1)pop IP (2)pop CS (3)popf  | |
|   处 理 控 制  | cld、std | 与movsb或movsw搭配使用: cld,将df设置为0,则si和di自增(或+2); std,将df设置为1,则si和di自减(或-2);  | 
| cli、sti | sti,设置IF=1,在中断处理程序中可处理可屏蔽中断; cli,设置IF=0,在进入中断处理程序后,进制其他的可屏蔽中断。  | |
| nop | 占位,和offset搭配,通常用来计算某段代码的长度 | 
