信息安全系统设计基础第四周学习总结

学习任务

1. 阅读教材,完成课后练习(书中有参考答案)

3.1-3.7中练习,重点:3.1,3.3,3.5,3.6,3.9,3.14,3.15,3.16,3.22,3.23,3.27,3.29,3.30,3.33,3.34

2. 考核:练习题把数据变换一下

3. 实验:需要动手的到实验楼中练习一下

4. 深化、实践题目,额外加分

 

学习过程

3.1历史观点(教材P103-P105)

1978的8086 29K个晶体管到2008的Corei7 781M个晶体管(每年增长38%,每26个月翻一番)

 

3.2程序编码(教材P105-P110)

提高优化级别会使最终程序运行得更快,但是编译时间可能会变长,用调试工具对代码调试会更困难。

3.2.1

ISA将程序的行为描述成好像每条指令是按顺序执行的。

gcc -S xxx.c -o xxx.s 获得汇编代码

反汇编器:objdump -d xxx

 

3.3数据格式(教材P111)

C声明

Intel数据类型

汇编代码后缀

大小

Char

字节

b

1

Short

w

2

Int

双字

l

4

Long int

双字

l

4

Long long int

--

--

4

Char *

双字

l

4

float

单精度

s

4

Double

双精度

l

8

Long double

扩展精度

t

10/12

 

3.4访问信息

esi edi可以用来操纵数组,esp ebp用来操纵栈帧。
对于寄存器,特别是通用寄存器中的eax,ebx,ecx,edx,大家要理解32位的eax,16位的ax,8位的ah,al都是独立的,我们通过下面例子说明:
假定当前是32位x86机器,eax寄存器的值为0x8226,执行完addw $0x8266, %ax指令后eax的值是多少?
解析:0x8226+0x826=0x1044c, ax是16位寄存器,出现溢出,最高位的1会丢掉,剩下0x44c,不要以为eax是32位的不会发生溢出.
(以上摘自教材学习指导)

操作数分类:立即数;寄存器;存储器

计算有效地址:Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

3.4.2

MOV类中指令将源操作数复制到目的操作数,相当于赋值。源操作数指定是一个立即数,存储在寄存器中或者存储器中。目的操作数指定一个wei’zhi

MOVS高位用符号位扩展

MOVZ高位用零扩展

 

posted @ 2015-10-11 20:41  20135329李海空  阅读(187)  评论(1编辑  收藏  举报