随笔分类 -  汇编语言

摘要:总结于《X86汇编语言 从实模式到保护模式》 仅适用于X86系列处理器1. 两者的区别: 例:mov ds, ax A.在指定16位编译模式下,产生的二进制码是 8E D8 B.在指定32位编译模式下(在某些老式的编译器中才会出现的),产生的二进制码是 66 8E D8 2. 影响: A.加上0x66的前缀是为了反转默认的操作数大小。因为32位模式下,默认的操作数大小是4字节的,而指令中的源操作数是16位的AX。 B.有前缀和没前缀相比,CPU在执行时会多花一个额外的时钟周期。3. 解决 A. 使用32位的源操作数,但是高地址部分会被截断。也让人难以理解。如:... 阅读全文
posted @ 2013-07-07 17:18 左懒 阅读(821) 评论(0) 推荐(0)
摘要:1.原码原码在存储方式上,最高位是符号位,其他位是数值位。如 : 正数原码: 3 对应的一个字节的原码:0000 0011B 负数原码: -3 对应的一个字节的原码:1000 0011B特殊点的是0的存储,0有两种存储方式: +0 对应的一个字节的原码:0000 0000B -0 对应的一个字节的原码:1000 0000B注:计算机中的负数不是以原码的方式存储的,而是补码。2.反码反码在存储方式上也是最高位时符号位,其他位是数值位。如: 正数反码: 3 对应的一个字节的反码:0000 0011B //没错,反码正数的表示方式跟原码是一样的 负数反码: ... 阅读全文
posted @ 2013-04-09 21:23 左懒 阅读(2626) 评论(0) 推荐(0)