汇编语言学习四

来源:互联网 发布:c语言课程coursera 编辑:程序博客网 时间:2024/05/29 04:23
   本人比较懒,可能懒得对前面的文章进行整理,也不怎么喜欢写很多,呵呵。今天往后的系列可能会更懒一些,基本翻译Jones[1].and.Bartlett.Publishers.Introduction.to.80x86.Assembly.Language.and.Computer.Architecture的内容,因为我觉得这些内容比较基础,同时自己也是一个复习。
第1章 数据在计算机中的表示方法
     单字节 ASCII 码微软系列
     双字节 UNICODE 双字节 一般使用时在头文件中会存在 #define UNICODE 或 #define _UNICODE(检查这两个是否存在就可以判定是否是UNICODE)
     还有一些不常见得,也是通过检查某个define来判定
 
     至于一些2,8,10,16进制的运算方法这里就不说了,随便一本教材就有。
第2章 计算机系统的各个部分
     8086/8088的cpu能执行200以上不同的指令。80386和后面的系列更是用各种扩展的指令集。cpu的内部存储器--寄存器,超过外部RAM的速度很多,同时存储还有cach(高速缓存)。registers > cash > ram
     这里说一下,按照我看过的资料,cpu为了提高速度,采取了多条管道并行执行n条指令段的技术,同时会预先判断下面最可能执行的片段,将其装入cash.
     然后 EAX,EBX,ECX,EDX
     AL,AH,AX等等就不用说了,L-low,H-high,E-extend
     EBX,ECX,EDX同理  
     附加寄存器ESI,EDI,ESP,EBP
     SI source index(源地址索引寄存器) di destination index (目的地址索引寄存器)
     常用来做字符串地址内容copy的寄存器
     ESP 系统堆寄存器,一般不会被外部程序所改变.EBP 为堆指针,用来选择需要的位置.
     16位段寄存器   CS, DS, ES, FS, GS, and SS.如果看过exe文件结构和汇编源代码,这个比较容易理解.
     EFLAG 标志位寄存器 常用的位有
     Bit     Mnemonic       Usage
     0       CF             carry flag
     2       PF             parity flag
     6       ZF             zero  flag
     7       SF             sign flag
     10      DF             direction flag
     11      OF             overflow flag