前言
个人错题记录,可能有错。
一、原码、反码、补码的转换
负数,符号位不变,按位取反加1
符号位也占一位,注意符号位不要变
二、位运算与逻辑运算的区别
位运算:&,|,~,^ (按位来运算)
逻辑运算:&&,||,!(结果是逻辑0或1)
三、Char , short int , int , float(4) , double(8)
Movb(1)
Movw(2)
Movl(4)
Movq(8)
四、黑客攻击
五、移位
左移shll,sall:0补齐
右移shrl,sarl:逻辑右移0补齐,算术右移最高位补齐
加法运算的优先级要比移位运算的优先级高
负数以补码形式保存在计算机中,-25=1…1 00111,>>3=1…1100,10…0 100=-4
负数->补码->移位->恢复为原码
六、寄存器,被调用者保存和调用者保存
Eax (accumulator) 调
Ebx (base) 被
Ecx (counter) 调
Edx (放整数除法产生的余数)调
Esi/edi (source/destination) 调
Ebp 堆栈指针 被
Esp 栈顶指针
七、CPU结构
CPU内部由ALU(算术逻辑单元)、CU(控制器)、寄存器(PC、IR、PSW、DR、通用寄存器等)、中断系统组成
外部通过总线与控制总线、数据总线、地址总线进行相连
八、intel与ATT格式的不同
Intel: 操作数顺序:s,d
寄存器名称:rax
立即数:直接使用数值,如123
不使用指令后缀,如add
寻址相对简单,如[rbx+8]
ATT :操作数顺序:d,s
寄存器名称:%rax
立即数使用$开头:$123
使用指令后缀,如addl
寻址相对复杂,如(%rax,%rbx,4)
九、3个抽象
文件:IO设备
虚拟存储器:主存和磁盘
进程:处理器,主存,IO设备
十、指针大小
指针大小与机器字长相同,即32位机指针长度为4字节,64位机器为8字节
十一、IEE
十二、转义字符
'\t' ; 'a' ; '\017' ; 'b' ; 'c'