首页 > 编程语言 >第十章 通过汇编语言了解程序的实际构成

第十章 通过汇编语言了解程序的实际构成

时间:2023-02-23 20:11:41浏览次数:37  
标签:汇编器 汇编语言 第十章 代码 程序 寄存器 源代码 CPU

       计算机CPU能直接解释运行的只有本地代码(机器语言)程序。用C语言等编写的源代码,需要通过各自的编译器编译后,转换成本地代码。

        在加法运算的本地代码中加上 add(addition的缩写)、在比较运算的本地代码中加上 cmp(compare的缩写)等。这些缩写称为助记符,使用助记符的编程语言称为汇编语言。这样,通过查看汇编语言编写的源代码,就可以了解程序的本质了。因为这和查看本地代码的源代码,是同一级别的。不过,即使是用汇编语言编写的源代码,最终也必须要转换成本地代码才能运行。负责转换工作的程序称为汇编器,转换这一处理本身称为汇编。在将源代码转换成本地代码这个功能方面,汇编器和编译器是同样的。用汇编语言编写的源代码,和本地代码是一一对应的。因而,本地代码也可以反过来转换成汇编语言的源代码。持有该功能的逆变换程序称为反汇编程序,逆变换这一处理本身称为反汇编。编语言的源代码,是由转换成本地代码的指令(后面讲述的操作码)和针对汇编器的伪指令构成的。伪指令负责把程序的构造及汇编的方法指示给汇编器(转换程序)。不过伪指令本身是无法汇编转换成本地代码的

       在汇编语言中,1行表示对CPU的一个指令。汇编语言指令的语法结构是操作码+操作数(也存在只有操作码没有操作数的指令)。

       寄存器是CPU中的存储区域。不过,寄存器并不仅仅具有存储指令和数据的功能,也有运算功能。x86系列CPU的寄存器的主要种类和角色。寄存器的名称会通过汇编语言的源代码指定给操作数。内存中的存储区域是用地址编号来区分的。CPU内的寄存器是用eax及ebx这些名称来区分的。

       在函数外部定义的变量称为全局变量,在函数内部定义的变量称为局部变量。全局变量可以参阅源代码的任意部分,而局部变量只能在定义该变量的函数内进行参阅。

        在这一章有很多函数,具体以课本为主,我们一定要了解“函数的参数是通过栈来传递,返回值是通过寄存器来返回的”这一点。

标签:汇编器,汇编语言,第十章,代码,程序,寄存器,源代码,CPU
From: https://www.cnblogs.com/locojo/p/17149229.html

相关文章

  • 随便玩玩之C# 11 程序控制-循环foreach
    随便玩玩之C#11程序控制-循环foreach 1.foreachforeach循环可以遍历集合中的所有项。语法如下:foreach(类型变量名in集合对象){......
  • 随便玩玩之C# 10 程序控制-循环while和do while
    随便玩玩之C#10程序控制-循环while和dowhile这两个也是循环。1.while当while条件为真时,执行循环体。如果条件不成立,一次也不执行。intsum=0;......
  • uni-app:微信小程序中用户登录(hbuilderx 3.6.18)
    一,代码:说明:xcxuserinfo是服务端得到用户信息的接口,我们用code作为参数传递给服务端,由服务端得到openid再得到用户信息然后返回<template><view><button......
  • 实现一个RIM程序
    ü1.创建一个远程接口,并继承java.rmi.Remote接口 ü2.实现远程接口,并且继承UnicastRemoteObject ü3.创建服务器程序,同时使用createRegistry方法注册远程接口对象 ......
  • 实现一个RIM程序
    ü1.创建一个远程接口,并继承java.rmi.Remote接口 ü2.实现远程接口,并且继承UnicastRemoteObject ü3.创建服务器程序,同时使用createRegistry方法注册远程接口对象 ......
  • 程序的组织结构
       #测试对象的布尔值print(bool(False))print(bool(0))print(bool(0.0))print((bool(None)))print(bool(''))print(bool(""))print(bool([]))#空列表print......
  • 随便玩玩之C# 9 程序控制-循环for
    随便玩玩之C#9程序控制-循环for循环是程序设计语言中反复执行某些代码的一种计算机处理过程。也有人叫迭代。迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或......
  • 火山引擎推出一站式小程序监控方案
    背景小程序作为轻量级的应用发展迅速,国内已有多家小程序厂商相继推出。为了洞察用户真实体验及程序自身运行状况,监控已成为开发套件中必不可少的一环。随着业务愈来愈复杂......
  • 线上药店小程序|药品商城|线上购药系统开发
    线上药店这几年的使用率越来越高,可以随时随地的通过网络平台订购自己所需要的药品,由于线上药店小程序的便利性,不仅给我们购买药品节省了时间和人力还带动了医药行业的发展,实......
  • 使用 pm2 守护你的 .NET Core 应用程序
    一.守护进程的前世今生#守护进程,英文名:“daemon",也有守护神的意思。守护进程是一个在后台运行并且不受任何终端控制的进程,不会随着会话结束而退出。诸如mysql、apache等......