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

限制访问次数的网站/微博推广价格表

限制访问次数的网站,微博推广价格表,杭州网站建设nuoweb,天津艺匠做网站文章目录前言一、教材和编译环境二、第一章 变量、寄存器与数据移动1.1引言1.2 汇编代码编写规则1.3 变量的类型1.4立即数和寄存器完整的实例 C语言中嵌入汇编指令前言 经过两周忙碌的小学期项目的学习后,终于又有自己的学习时间了。这次呢,我打算继续学…

文章目录

  • 前言
  • 一、教材和编译环境
  • 二、第一章 变量、寄存器与数据移动
    • 1.1引言
    • 1.2 汇编代码编写规则
    • 1.3 变量的类型
    • 1.4立即数和寄存器
  • 完整的实例 C语言中嵌入汇编指令


前言

经过两周忙碌的小学期项目的学习后,终于又有自己的学习时间了。这次呢,我打算继续学习我的Linux应用开发,同时对汇编语言,python,Qt进行基础的学习。

为什么要学习汇编呢?
因为对作者我而言,开启计算机大门的不是C语言,java等之类的高级语言。在学习这个高级语言的时候,我甚至一点兴趣都没有,只是单纯的希望考试不挂科。真正打开我对计算机兴趣的大门是操作系统!

这跟我学习汇编有什么关系吗?
之所以操作系统打开了我对计算机的兴趣,是因为我从操作系统开始认识到了计算机的工作原理,认识到了之前所学的高级语言对计算机运行的作用和意义,以及为什么我们需要这样来编写我们的代码,怎么样才能让我们的代码变得更高质量。而汇编语言能很好的帮助我去更加深入的学习和理解计算机的工作原理。

为什么写这篇博客?
纯属是为了作为自己的学习笔记,当然也不忘记科学的精神:学习和分享!如果这篇博客对你有帮助,那真是太好了。

怎么来学习汇编语言?
我个人是在学习完了操作系统,计算机组成原理再来学习汇编语言的。其实我觉三者的顺序无所谓,主要是要能够结合三者去链接其中的知识,验证计算机的工作原理。所以我建议大家,如果想往硬件走的话,应该是要深入学习三者的,如果你走软方向,了解底层也能帮助你编写更加优秀的代码以及帮助你在计算机科学的道路上走得更远。学习的方法就是:思考+验证(嘿嘿嘿,因为我就是这样没啥特别的技巧,就是每天给自己找麻烦,为什么他是这样的,不能是这样)

一、教材和编译环境

我使用的教材是图书馆免费的
《汇编语言基础教程》清华大学出版 James T.Streib著 远红亮译

使用的编译环境是VS Code。只需要在里面下载插件 即可

在这里插入图片描述

至于VS Code的安装和下载,环境变量的配置你可以在CSDN上收,肯定一大把

二、第一章 变量、寄存器与数据移动

1.1引言

简单介绍一下我们在编写高级语言的时候,从编写代码到计算机执行代码的过程,如图:
在这里插入图片描述

详细的内容我还是建议大家在网上找找资料好好学习一下,也私信探讨。因为这能帮助你理解整个代码执行流程。

解释一下上面安装的那个插件MASM的意思:Microsoft Assembler微软汇编程序。

1.2 汇编代码编写规则

在这里插入图片描述

1.3 变量的类型

在汇编语言中是需要申明变量的类型的,其实你可以把变量类型申明理解为计算机需要开辟多大的空间来存储你的数据,比如字符,当然就只需要1个byte就可以表示了呀。数字12345678,1个byte怎么够肯定需要更大的空间。所以下面的数据类型你可以按照这个方法去记
类型 所占比特数
sdword 32 s表示有符号,即可以表示负数
dword 32 没有s为无符号数,只能表示负数
word 16
sbyte 8
byte 8

1.4立即数和寄存器

立即数:立即数指的是数据能够被指令直接携带而不用再申请一块内存空间来存放他。比如0x12,就是一个很小的数,一条指令的数据位完全可以装下,就没有必要去申请空间来存。而0x12345678。表示这个数字就我们的指令的数据位就肯定不够,所以需要将它存在内存中,将它的内存地址放在指令中传递给CPU,具体的内容可以先去看我的
《Linux应用开发(一)》
寄存器:这里主要是介绍CPU内部的寄存器,目前只需要有个大概的认识就行,后面就会越来越熟悉,大体的内容如下
在这里插入图片描述以前的CPU只有4个通用寄存器,就是ax,bx,cx,dx。只是随着发展计算机的发展实现越来越多的功能,提高计算机的运行速度等,寄存器有了各种各样的发展和升级。之前是ax是16为的寄存器,eax就是扩展的意思升级为了32位。h和l表示高位和低位的意思。

关于每个寄存器的作用如下
在这里插入图片描述a,b,c,d寄存器都是通用寄存器,也就是说程序员可以直接操作的寄存器。对于怎么使用后面会一一介绍。

完整的实例 C语言中嵌入汇编指令

#include<stdio.h>int main(){int num1,num2;num1=5;num2=num1;printf("The answer is: %d\n",num2);return 0;
}
#include<stdio.h>
int main(){int num1,num2;num1=5;_asm{mov eax, num1mov num2, eax}printf("The answer is:%d\n",num2);return 0;
}

在这里插入图片描述

http://www.jmfq.cn/news/4896847.html

相关文章:

  • 襄州区城乡建设局网站/百度电脑版网页版
  • 建设个人购物网站/艾瑞指数
  • 做网站备完备案需要干什么/营销技巧和营销方法培训
  • 直播app开发价格/灰色行业关键词优化
  • 电子商务专业网站建设/购买网站域名
  • 微信公众号好看的模板哪里找/济南网站优化排名
  • 哪个网站可以免费做初级试题/拼多多关键词怎么优化
  • 棋牌网站开发搭建/电子商务推广
  • 温州做网站设计/网文推广怎么做
  • 天河做网站技术/手机关键词seo排名优化
  • 太原网站建设推广服务/seo优化常识
  • h5响应式网站建设/谷歌搜索引擎免费入口 台湾
  • html 网站模板/网站排名top排行榜
  • 如何申请一个网站 做视频/网络安全培训机构哪家好
  • 天津高端网站建设制作/网站外链的优化方法
  • 网络域名怎么注册/新野seo公司
  • 网站开发目的简介/游戏推广怎么做挣钱
  • 网站开发神书/网络培训平台有哪些
  • 公安局网站备案表/优化推广网站怎么做
  • 网站建设 全包 模板/百度推广的价格表
  • 建设银行登录网站/北京企业网站推广哪家公司好
  • 网络彩票的网站怎么做/建站abc网站
  • 杭州市建设信用网站/市场调研分析报告模板
  • 网站建设业务的途径/seo产品优化免费软件
  • 网站动画广告条怎么做的/重庆网
  • 青岛市城阳区建设局网站/营销策划方案案例范文
  • 苏州集团网站制作公司/最新新闻消息
  • 西安做网站服务/千锋教育怎么样
  • 西安网站建设公司都有哪些/热搜榜排名今日
  • 公司电脑为什么有的网站打不开/页面优化的方法