第一遍对应笔记链接 https://www.cnblogs.com/stone94/p/9905345.html

机器级代码

计算机系统使用了多种不同形式的抽象,利用更简单的抽象模型来隐藏实现的细节。对于机器级编程来说,其中两种抽象尤为重要。第一种是由指令集体系结构或指令集架构(Instruction Set Architecture,ISA)来定义机器级程序的格式和行为,它定义了处理器状态、指令的格式,以及每条指令都是按顺序执行的,一条指令结束后,下一条再开始。处理器的硬件远比描述的精细复杂,它们并发地执行许多指令,但是可以采取措施保证整体行为与 ISA 指定的顺序执行的行为完全一致。第二种抽象是,机器级程序使用的内存地址是虚拟地址,提供的内存模型看上去是一个非常大的字节数组。

整个编译过程中,编译器会完成大部分的工作,将把用 C 语言提供的相对比较抽象的执行模型表示的程序转化成处理器执行的非常基本的指令。汇编代码表示非常接近于机器代码。与机器代码的二进制格式相比,汇编代码的主要特点是它用可读性更好的文本格式表示。能够理解汇编代码以及它与原始 C 代码的联系,是理解计算机如果执行程序的关键一步。

数据传送指令

最频繁使用的指令是将数据从一个位置复制到另一个位置的指令。操作数表示的通用性使得一条简单的数据传送指令能够完成在许多机器中要好几条不同指令才能完成的功能。我们会介绍多种不同的数据传送指令,它们或者源和目的类型不同,或者执行的转换不同,或者具有的一些副作用不同。

控制

C 语言中的某些结构,比如条件语句、循环语句和分支语句,要求有条件的执行,根据数据测试的结果来决定操作执行的顺序。机器代码提供两种基本的低级机制来实现有条件的行为:测试数据值,然后根据测试的结果来改变控制流或者数据流。

最新文章

  1. Angular.js通过bootstrap实现经典的表单提交
  2. webservice5
  3. Linux:实现Hadoop集群Master无密码登录(SSH)各个子节点
  4. Block传值
  5. 逆序数2 HDOJ 1394 Minimum Inversion Number
  6. JAX-RPC
  7. Find Security Bugs研究,邀请志同道合者一起参与
  8. Mockito--完整功能介绍(转)
  9. CxSkinButton按钮皮肤类
  10. C++STL之set容器及stream类
  11. poj3254(状压dp)
  12. 十天学Linux内核之第五天---有关Linux文件系统实现的问题
  13. javascript系列之执行上下文
  14. 从零开始用 Flask 搭建一个网站(二)
  15. Postman基本使用——get、post请求、断言、环境变量
  16. python while条件和if判断的总练习
  17. [转]Docker(三):Dockerfile 命令详解
  18. 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)
  19. 移动端click事件
  20. C# 网页图片采集

热门文章

  1. 【Java 基础】谈谈集合.List
  2. Sublime Text3工具的安装、破解、VIM功能vintage插件教程(已经实践、绝对可用)
  3. 手把手教你搭建HEXO免费博客
  4. 快速傅里叶变换(FFT)略解
  5. 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)
  6. org.thymeleaf.exceptions.TemplateInputException: Error resolving template 报错
  7. 云计算 docker 容器使用命令
  8. malloc面试题目(转) - [C++]
  9. CentOS 7 的root口令破解两种方法
  10. python str的一些操作及处理