信息安全系统设计基础 第5周学习笔记

第三章 程序的机器级表示

一、处理器历史——摩尔定律

摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(Gordon Moore)提出来的。

 

其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24

个月翻一倍以上。这一定律揭示了信息技术进步的速度。

二、程序编码

linux默认编译器——gcc c编译器

过程:

 

后缀名解释:

 

 

 gcc常用选项:

三、数据格式

char—字节—b

short—字—w

int—双字—l

long int—双字—l

long long int—/—/

char*—双字—l

float—单精度—s

double—双精度—l

long double—扩展精度—t

四、寻址方式

立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间间接寻址、寄存器相对寻址方式(或称直接变址寻址方式)、基址变址寻址方式、相对基址变址寻址方

式、比例变址寻址方式、基址比例变址寻址方式、相对基址比例变址寻址方式

五、指令

mov —— 传送数据

add —— 加

sub —— 减

imul —— 乘(有符号)

xor —— 异或

or —— 或

and —— 与

leal —— 传送地址

inc —— 加一

dec —— 减一

neg —— 取负 ?

not —— 取补 ?

sal (shl)—— 左移

sar —— 算术右移

shr —— 逻辑右移

loop —— 循环

跳转指令:略

六、标志位

常见的条件标志位:

CF:进位标志

ZF:零标志

SF:符号标志

OF:溢出标志

标志位相应的位置:

 

七、使用

call —— 调用

ret —— 返回(相当于c语言的return)

八、实验

实验代码:

汇编原代码:

 

去掉带.代码行的汇编代码:

 

*参考资料:

1.嵌入式Linux应用程序开发标准教程.pdf

2.https://www.shiyanlou.com/courses/413

遇到的问题:

1.汇编指令与上学期学的有些出入……

例如:书上neg是取负指令,not是取补指令,但是汇编书上neg是取补指令,not是取反指令。

2.使用gdb的bt/frame/up/down 指令时,不知为何总是显示“no stack”。

posted @ 2015-10-11 20:47  20135312吴汉彦  阅读(180)  评论(1编辑  收藏  举报