《汇编语言》读书笔记(1) 初识汇编
来源:互联网 发布:软件开发行业 编辑:程序博客网 时间:2024/04/29 16:58
对我这样长期从事.Net开发的程序员而言,汇编是低级得不能再低级的语言,充满了神秘和艰涩。随着对汇编语言理解的深入,越来越领会到其中的魅力。下面是对汇编相关的一些基础知识的初步了解。
机器语言与汇编语言
计算机把各种指令用二进制格式保存在存储器里,并由CPU处理,就是机器语言。然而程序员直接阅读和编写机器语言的难度较大,而且容易错误,因此产生了汇编语言。汇编语言的主要部分是汇编指令,而汇编指令实质就是机器语言的别名、助记符,是便于程序员记忆的格式。
要注意不同的CPU有不同的机器指令集,对应汇编指令集也不同。
汇编语言的组成
汇编语言有3类指令组成:汇编指令、伪指令、其它符号。
汇编指令上面说了,是机器语言的助记符,每条汇编指令都有与之完全对应的机器码。
伪指令和其他符号都是由汇编编译器执行的指令,没有对应的机器码。
CPU对存储器的读写
CPU对存储器的读写通过地址总线、数据总线、控制总线共同完成。以读数据为例,CPU先通过地址总线发出要读取的存储单元地址,再通过控制总线发出读命令,存储器通过数据总线把对应的数据传送到CPU。
这是一个很简单的过程,但习惯了上层开发的我老觉得会不会有并发问题。呵呵,实际上CPU和内存总是配合的很好,值得学习。
我的系统是多少位?
CPU的位数决定了运算器可处理多少位的数据、寄存器的最大宽度、寄存器和运算器之间的数据传输位数。
地址总线的位数决定了系统的寻址能力。
数据总线的位数决定了CPU与外部进行数据交换时每次的数据传输量。
控制总线的位数决定了CPU对系统中其他器件的控制能力。
操作系统的位数呢?操作系统的位数是与CPU对应的,例如64位操作系统增加了一些64位CPU的指令,同时和32位CPU兼容。而如果用32位操作系统控制64位CPU,基本上操作系统就只把它当做32位CPU来用了。
8086CPU工作过程
- 寄存器CS、IP保存指令的段地址、偏移地址;
- 把CS、IP的内容送入地址加法器,计算出物理地址(段地址*16+偏移地址);
- 地址加法器把物理地址送到输入输出控制电路;
- 输入输出控制电路把物理地址送到地址总线;
- 物理地址存放的机器指令通过数据总线送入CPU;
- 输入输出控制电路把机器指令送入指令缓冲器;
- 根据机器指令的长度,寄存器IP的值自动增加;
- 执行控制器执行机器指令;
- 重复整个过程
调试工具:Debug
Debug是Dos、Windows都提供的实模式调试工具,可用来查看寄存器和内存,跟踪汇编程序的执行。对Windows操作系统,在控制台下输入“debug”即可进入。
常用的Debug命令有R命令、D命令、U命令、A命令、E命令、T命令、P命令、Q命令等。
- 《汇编语言》读书笔记(1) 初识汇编
- LINUX汇编(汇编语言程序设计读书笔记)
- 【汇编学习】汇编语言读书笔记(第一章)
- 【汇编学习】汇编语言读书笔记(第二章)
- 【汇编学习】汇编语言读书笔记(第三章)
- 初识汇编语言
- 汇编语言程序设计读书笔记(1)
- 王爽-汇编语言 课程设计1 汇编源代码
- Linux汇编和Shellcoding-1 汇编语言简介
- 《汇编语言》(王爽著)的读书笔记(1)
- 汇编语言程序设计读书笔记(1)- 相关工具
- 汇编语言-汇编程序初识
- [汇编理论]汇编语言
- 汇编,汇编语言,汇编程序概念
- 汇编语言---GCC内联汇编
- 汇编语言---GCC内联汇编
- 汇编语言---GCC内联汇编
- 汇编语言--ARM汇编
- ASP批量更新数据代码
- 沙发了!
- 学习学习
- 键盘上所有快捷键,看了你不后悔100% 有用
- 很不错的插入
- 《汇编语言》读书笔记(1) 初识汇编
- 有电脑,没宽带,也能上网
- 7--1linux设备驱动中的并发控制
- 数组中找出前xxx个(或第xxx个)元素的实现
- 10 04 15 感触
- 春闲杂吟
- SATA硬盘在BIOS下的设法
- 如何防止路由被“黑”
- 10 04 16 熬