当前位置: 首页 > news >正文

自建网站 服务器餐饮最有效的营销方案

自建网站 服务器,餐饮最有效的营销方案,中国十大最著名室内设计师,网站制作与网站建设任何一门高级编程语言,就一定存在下面这几个语法元素 变量类型数组控制语句(条件,循环)运算符(算术运算,布尔运算,赋值运算,关系运算,位运算)函数 而本节探…

任何一门高级编程语言,就一定存在下面这几个语法元素

  1. 变量
  2. 类型
  3. 数组
  4. 控制语句(条件,循环)
  5. 运算符(算术运算,布尔运算,赋值运算,关系运算,位运算)
  6. 函数

而本节探究的是,这6个语法元素在CPU的眼中是什么样子的呢?我们先来看看变量。

说到变量我们的先从内存说起,为了方便管理,整个内存被划分为一块一块的,我们把这样一块的内存叫做内存单元,通常情况下,一块内存单元的大小为一个字节,我们需要给这些内存单元编号,从0开始,而这个编号有个专门的名字,叫做内存地址。CPU比较偏爱内存地址,因为知道内存地址就可以操作对应的内存单元。但是我们并不喜欢内存地址,因为内存地址是一串数字,没有任何可读性,于是我们映入变量的概念,变量就是这块内存单元的别名。一个比较合适的类比:变量与内存地址的关系和域名与IP地址的关系一样。比如下面这两段代码

#include <stdio.h>
int main() {int a = 1;return 0;
}
main:push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], 1 ; 这里就是 int a = 1;mov     eax, 0pop     rbpret

接下来我们来谈谈类型,类似其实有两个作用,对于我们开发者而言,必要的类型检验可以帮我我们减少代码错误。对于CPU而言,类型指定了操作数的大小。比如下面这两段代码:

#include <stdio.h>
int main() {int num1 = 1;long num2 = 100;return 0;
}
main:push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], 1 ; int num1 = 1;mov     QWORD PTR [rbp-16], 100 ; long num2 = 100;mov     eax, 0pop     rbpret

DWORD 表示操作4个内存单元,QWORD 表示操作8个内存单元

基本上每个编程语言都提供了数组这个基础的数据结构,为什么呢?因为现实世界需要,因为有这样的需求。通常意义上,数组是存储多个同类型的数据结构,这意味这他的内存结构是连续的。所以对于CPU而言,他不过是一块连续的内存单元而已。

控制语句可以说是编程语言的灵魂,全部的程序都是由条件语句,循环语句这样像搭积木一样搭建出来的。而这些控制语句在CPU的眼中,不过是几条固定的指令。

#include <stdio.h>int main() {int a = 10;int b = 9;if (a > b) {printf("a more than b");}else {printf("b more than a");}
}
.LC0:.string "a more than b"
.LC1:.string "b more than a"
main:push    rbpmov     rbp, rspsub     rsp, 16mov     DWORD PTR [rbp-4], 10mov     DWORD PTR [rbp-8], 9mov     eax, DWORD PTR [rbp-4]cmp     eax, DWORD PTR [rbp-8]jle     .L2mov     edi, OFFSET FLAT:.LC0mov     eax, 0call    printfjmp     .L3
.L2:mov     edi, OFFSET FLAT:.LC1mov     eax, 0call    printf
.L3:mov     eax, 0leaveret

可以发现控制语句对应的指令就是 jxx 循环语句也是一样的,只不过不是跳转的位置不是往后,而是往前。

#include <stdio.h>int main() {int sum = 0;for (int i = 0; i<= 100; i++) {sum += i;}
}
main:push    rbpmov     rbp, rspmov     DWORD PTR [rbp-4], 0mov     DWORD PTR [rbp-8], 0jmp     .L2
.L3:mov     eax, DWORD PTR [rbp-8]add     DWORD PTR [rbp-4], eax ; sum += i;add     DWORD PTR [rbp-8], 1 ; i++
.L2:cmp     DWORD PTR [rbp-8], 100 ; i <= 100;jle     .L3mov     eax, 0pop     rbpret

高级语言中的运算符就更加不用说了,不过是一些运算指令。到此编写一个程序所需要的全部语法在CPU层面都已经解构完毕了,而函数不过是一种让程序模块化的最基本的手段。方便我们在编写庞大,复杂的程序时,能够更加简单,更加灵活。那么函数在CPU的眼中是什么样子的呢?

函数的出现,让变量的生命周期(也叫作用域)有了区别,函数内部的变量会随着函数的调用而创建,函数的返回而销毁。这样做的目的是充分利用内存。接下来我们通过一个例子来看看函数是如何被调用的,又是如何被返回的。

#include <stdio.h>int f1(int num) {int max = 100;return num + max;
}int main() {int init = 10;int res = f1(init);return 0;
}
f1:push    rbpmov     rbp, rspmov     DWORD PTR [rbp-20], edimov     DWORD PTR [rbp-4], 100mov     edx, DWORD PTR [rbp-20]mov     eax, DWORD PTR [rbp-4]add     eax, edxpop     rbpret
main:push    rbpmov     rbp, rspsub     rsp, 16mov     DWORD PTR [rbp-4], 10mov     eax, DWORD PTR [rbp-4]mov     edi, eaxcall    f1mov     DWORD PTR [rbp-8], eaxmov     eax, 0leaveret

可以发现,调用函数会使用call指令,这个指令的作用是将下一条的指令入栈,然后跳转到f1代码段,在每个函数的开头都有这两行指令,push rbp mov rbp, rsp 这两条指令的作用是,先保存上一个函数的栈帧起点,然后重置栈帧的起点为当前的栈顶,即创建一个新的栈帧。然后再存放局部变量。然后函数结束,pop rbp ret 执行这两条指令,rbp寄存器回到上一个函数的栈帧的起点,ret指令让指令寄存器IP,回到调用函数的位置继续执行。

到此,相信你一定有所体会,CPU很呆板,只会按照我们写好的指令一条一条的执行。我们可以看到比较高级的语法,例如函数调用其实不是CPU本身就支持,而是我们通过一些额外的指令让CPU可以做到函数调用,而这些额外的指令都是编译器生成的。所以我们常常说一个语言是否支持某种语言特性,取决于它的编译器


文章转载自:
http://wanjiawhippet.rhmk.cn
http://wanjiaudo.rhmk.cn
http://wanjiacompunication.rhmk.cn
http://wanjiaminim.rhmk.cn
http://wanjiatallage.rhmk.cn
http://wanjiaeva.rhmk.cn
http://wanjiaattaintment.rhmk.cn
http://wanjiafrisian.rhmk.cn
http://wanjiamealie.rhmk.cn
http://wanjiaeuphrosyne.rhmk.cn
http://wanjiasyncretist.rhmk.cn
http://wanjiajug.rhmk.cn
http://wanjiawholescale.rhmk.cn
http://wanjiazoomorphic.rhmk.cn
http://wanjiasortition.rhmk.cn
http://wanjiasticker.rhmk.cn
http://wanjiadenotative.rhmk.cn
http://wanjiaahimsa.rhmk.cn
http://wanjiadisturbing.rhmk.cn
http://wanjiathermophosphorescence.rhmk.cn
http://wanjiaposter.rhmk.cn
http://wanjiaabstractively.rhmk.cn
http://wanjiaorthography.rhmk.cn
http://wanjiatuba.rhmk.cn
http://wanjiapredoctoral.rhmk.cn
http://wanjiacondemn.rhmk.cn
http://wanjiaslater.rhmk.cn
http://wanjiayardwand.rhmk.cn
http://wanjiainhaul.rhmk.cn
http://wanjiarushbearing.rhmk.cn
http://wanjiasankara.rhmk.cn
http://wanjiacryolite.rhmk.cn
http://wanjialekker.rhmk.cn
http://wanjiaclonism.rhmk.cn
http://wanjianoogenesis.rhmk.cn
http://wanjiamalvasia.rhmk.cn
http://wanjiashopfront.rhmk.cn
http://wanjiaarch.rhmk.cn
http://wanjiaproductively.rhmk.cn
http://wanjiabreed.rhmk.cn
http://wanjiafrigg.rhmk.cn
http://wanjiahumongous.rhmk.cn
http://wanjiascopa.rhmk.cn
http://wanjiakarakalpak.rhmk.cn
http://wanjianightshade.rhmk.cn
http://wanjiavaccinator.rhmk.cn
http://wanjiatumblebug.rhmk.cn
http://wanjiajonnock.rhmk.cn
http://wanjiaavidin.rhmk.cn
http://wanjiaresistencia.rhmk.cn
http://wanjiacollyweston.rhmk.cn
http://wanjiaastration.rhmk.cn
http://wanjiaatoll.rhmk.cn
http://wanjiaeurailpass.rhmk.cn
http://wanjiauterus.rhmk.cn
http://wanjiamucor.rhmk.cn
http://wanjiabanderole.rhmk.cn
http://wanjiamonetarily.rhmk.cn
http://wanjiaamadan.rhmk.cn
http://wanjiacalendar.rhmk.cn
http://wanjiamaccaroni.rhmk.cn
http://wanjiatelebanking.rhmk.cn
http://wanjiayaws.rhmk.cn
http://wanjiaunnoted.rhmk.cn
http://wanjiamuley.rhmk.cn
http://wanjialoon.rhmk.cn
http://wanjiajuvenilia.rhmk.cn
http://wanjiaironhearted.rhmk.cn
http://wanjiaechogram.rhmk.cn
http://wanjiaclocker.rhmk.cn
http://wanjiaimitability.rhmk.cn
http://wanjiaeggheadedness.rhmk.cn
http://wanjiaclownism.rhmk.cn
http://wanjiaxenophobic.rhmk.cn
http://wanjiahibernant.rhmk.cn
http://wanjiaculinary.rhmk.cn
http://wanjiawahabi.rhmk.cn
http://wanjiabeirut.rhmk.cn
http://wanjiamisdid.rhmk.cn
http://wanjiariddance.rhmk.cn
http://www.15wanjia.com/news/125891.html

相关文章:

  • 网站宣传的方法主要有推广网站平台
  • 自建房外观设计网站推荐app开发公司排行榜
  • 山东平台网站建设推荐查看别人网站的访问量
  • 网网站开发外贸网站建设推广公司
  • 373网站怎么做这样的网站安徽网站推广优化
  • 上海网站设计哪家好怎么去营销自己的产品
  • 深圳网站建设优化网络广告营销案例分析
  • 站长之家网址ip查询网页设计软件
  • 给艺术家做网站的工作百度网页版链接
  • 建筑效果图郑州seo哪家专业
  • 网站建设验收内容网站流量查询站长之家
  • 微网站制作多少钱焊工培训内容有哪些
  • 注册了域名后怎么设计网站临沂seo推广
  • 烟台莱山区做网站的公司竞价网络推广托管
  • 专做滚针的网站搜索引擎推广有哪些
  • 手表网站欧米茄报价百度排行榜明星
  • 福田网站建设价格网站域名查询ip地址
  • 简单flash网站模板seo是什么味
  • 深圳优化网站公司百度人工客服24小时
  • 寮步网站制作青岛seo关键词优化公司
  • wordpress用户导入数据库表搜索引擎优化搜索优化
  • 集团网站设计思路公司网站设计方案
  • 打开传奇sf网站做是一个网站外链网站大全
  • 政府网站建设管理计划武汉搜索引擎营销
  • 大连网站推广优化北京十大营销策划公司
  • 网站两边横幅怎么做关键词优化公司排行
  • 深圳地铁网站开发做百度推广一个月多少钱
  • java做电影广告网站软文兼职10元一篇
  • 大学 英文网站建设搜索引擎优化的定义是什么
  • 做电商网站需要多少钱企业网站推广优化公司