第四章 数据传送,寻址和算术运算

作者在 2010-06-20 19:43:02 发布以下内容
lahf: 把eflag的低字节拷贝到ah,sahf相反
xchg 交换指令
交换val1和val2的值:
mov ax,val1
xchg val2,ax
mov  val1,ax
***************************************************************************
cpu执行减法的时候是对减数求补在相加

判断溢出:
2个整数相加得负数
2个负数相加的整数
结论:用位6xor位7的进位值设置of
  
算术指令:
inc,dec不设置cf
add,sub,neg取反,adc,sbb设置cf,of,zf,pf,sf
 
offset 取偏移地址
ptr重载变量的尺寸
type返回数组中元素的大小 单位字节
lengthof返回数组元素数目,只限一行。除例1
例1:
array byte 1,2,3,
               4
lenthof array   的值 为4
***************************************************************************
array  byte 1,2,3
         byte 4
lengthof array  的值 为 3
***************************************************************************
sizeof返回数组大小,特殊情况同lengthof
sizeof = type * lengthof
label对同一变量定义新尺寸,无实际存储空间
val16 label word
val32 dword 123456h
 
***************************************************************************
aligh 边界值 ;按边界值对齐
val1 byte ? 0040 0000
aligh 2
val2 word ? 0040 0002
***************************************************************************

直接寻址:就是用变量名寻址
mov eax,val
间接寻址
mov eax,【esi】
指针:包含地址的变量
变量名在数据段变量的初始化解释为 内存的地址
变量名在指令中的解释为 内存的内容
array byte 1,2,3,4
ptrb dword array ;ptrb=offset array
mov al, array  ;al = 1
***************************************************************************
typedef 允许创建跟基本类型相同的自定义类型
loop指令的执行:先减在比较,不为0才跳转
所有条件跳转指令的跳转范围 -128--127
在任何情况下 loopd 用ecx作为计数器 loopw用cx作为计数器
汇编笔记 | 阅读 834 次
文章评论,共0条
游客请输入验证码
浏览3407次
最新评论