汇编语言免费入门教程(怎么学汇编语言)

2025-12-28 04:45:02 :0

汇编语言免费入门教程(怎么学汇编语言)

大家好,汇编语言免费入门教程相信很多的网友都不是很明白,包括怎么学汇编语言也是一样,不过没有关系,接下来就来为大家分享关于汇编语言免费入门教程和怎么学汇编语言的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

怎么学汇编语言

可以先读一下面这些书:1.《汇编语言》(第2版),王爽 著,清华大学出版社,2008-4-1
  基于INTEL
8086处理器、MASM编译器,以及DOS平台的汇编教材,完全以8086处理器的实模式为主,不涉及目前常用的32位和64位模式,但因为通俗易懂,读者反映很好。
  2.《80X86汇编语言程序设计教程》,杨季文等 编著,清华大学出版社,1999-3-1
  基于INTEL
x86处理器、MASM和TASM编译器,既有16位实模式的内容,也有32位保护模式的内容,而且对后者讲述较为详细。
  3.《32位汇编语言程序设计》,钱晓捷 编著,机械工业出版社,2011-8-1
  基于INTEL x86处理器、MASM编译器,以及WINDOWS平台的汇编教材。
  4.《16/32位微机原理汇编语言及接口技术》,钱晓捷,陈涛 编著,机械工业出版社,2005-2-1
  基于INTEL
x86处理器,论述16位微型计算机的基本原理、汇编语言和接口技术,并引出32位微机系统相关技术。
  5.《Intel汇编语言程序设计》(第五版),(美)欧文 著,电子工业出版社,2012-7-1
  基于INTEL
x86处理器、MASM编译器,以及DOS/WINDOWS平台的汇编教材,既有16位实模式的内容,也有32位保护模式的内容。
  6.《汇编语言的编程艺术》(第2版),(美)海德 著,清华大学出版社,2011-12-1
  基于INTEL x86处理器,使用了作者自制的高级语言汇编器(High Level
Assembler,HLA)作为教学工具,以部分地获得高级语言的优势和功能。
  7.《x86 PC汇编语言、设计与接口》(第五版),(美)马兹迪,考西 著,电子工业出版社,2011-1-1
  基于INTEL x86处理器,既有16位实模式的内容,也有32位保护模式的内容,对64位也有所介绍。
ARM体系及单片机教材
  1.《汇编语言程序设计--基于ARM体系结构》(第2版),文全刚 等主编,北京航空航天大学出版社,2010-8-1
  基于ARM体系结构的处理器,是学习嵌入式技术的入门教材。
  2.《零基础学AVR单片机》,徐益民 等编著,机械工业出版社,2011-1-1
  单片机概述、avr单片机的开发工具、avr单片机c语言、atmega16单片机基本结构、avr的指令系统与汇编系统等。
  3.《基于Multisim10的51单片机仿真实战教程》,聂典,丁伟 主编,电子工业出版社,2010-2-1
  阐述了NI Multisim 10在单片机仿真中的各项主要功能。
  4.《PIC18微控制器:体系结构、编程与接口设计》,(美)贝里著,清华大学出版社,2009-4-1
  微控制器广泛应用于汽车、家电、工业控制、医疗设备等众多领域。本书以Microchip公司的PIC18系列微控制器为例,全面讲解如何使用C语言和汇编语言对微控制器进行编程。
  5.《CASL汇编语言程序设计》,赵立辉编著,中国电力出版社,2002-10-1
  CASL汇编语言是中国计算机软件专业技术资格和水平考试高级程序员级的必考内容。本书是讲述CASL汇编语言程序设计的专著。

[简明x86汇编语言教程] 汇编语言小游戏x86

简明x86汇编语言教程(2)

第二章 认识处理器

中央处理器(CPU)在微机系统处于“领导核心”的地位。汇编语言被编译成机器语言之后,将由处理器来执行。那么,首先让我们来了解一下处理器的主要作用,这将帮助你更好地驾驭它。

典型的处理器的主要任务包括

从内存中获取机器语言指令,译码,执行

根据指令代码管理它自己的寄存器

根据指令或自己的的需要修改内存的内容

响应其他硬件的中断请求

一般说来,处理器拥有对整个系统的所有总线的控制权。对于Intel平台而言,处理器拥有对数据、内存和控制总线的控制权,根据指令控制整个计算机的运行。在以后的章节中,我们还将讨论系统中同时存在多个处理器的情况。

处理器中有一些寄存器,这些寄存器可以保存特定长度的数据。某些寄存器中保存的数据对于系统的运行有特殊的意义。

新的处理器往往拥有更多、具有更大字长的寄存器,提供更灵活的取指、寻址方式。

寄存器

如前所述,处理器中有一些可以保存数据的地方被称作寄存器。

寄存器可以被装入数据,你也可以在不同的寄存器之间移动这些数据,或者做类似的事情。基本上,像四则运算、位运算等这些计算操作,都主要是针对寄存器进行的。

首先让我来介绍一下80386上最常用的4个通用寄存器。先瞧瞧下面的图形,试着理解一下:

上图中,数字表示的是位。我们可以看出,EAX是一个32-bit寄存器。同时,它的低16-bit又可以通过AX这个名字来访问;AX又被分为高、低8bit两部分,分别由AH和AL来表示。

对于EAX、AX、AH、AL的改变同时也会影响与被修改的那些寄存器的值。从而事实上只存在一个32-bit的寄存器EAX,而它可以通过4种不同的途径访问。

也许通过名字能够更容易地理解这些寄存器之间的关系。EAX中的E的意思是“扩展的”,整个EAX的意思是扩展的AX。X的意思Intel没有明示,我个人认为表示它是一个可变的量。而AH、AL中的H和L分别代表高和低 。

为什么要这么做呢?主要由于历史原因。早期的计算机是8位的,8086是第一个16位处理器,其通用寄存器的名字是AX,BX等等;80386是Intel推出的第一款IA-32系列处理器,所有的寄存器都被扩充为32位。为了能够兼容以前的16位应用程序,80386不能将这些寄存器依旧命名为AX、BX,并且简单地将他们扩充为32位——这将增加处理器在处理指令方面的成本。

Intel微处理器的寄存器列表(在本章先只介绍80386的寄存器,MMX寄存器以及其他新一代处理器的新寄存器将在以后的章节介绍)

通用寄存器

下面介绍通用寄存器及其习惯用法。顾名思义,通用寄存器是那些你可以根据自己的意愿使用的寄存器,修改他们的值通常不会对计算机的运行造成很大的影响。通用寄存器最多的用途是计算。

EAX

32-bit宽

通用寄存器。相对其他寄存器,在进行运算方面比较常用。在保护模式中,也可以作为内存偏移指针(此时,DS作为段寄存器或选择器)

EBX

32-bit宽

通用寄存器。通常作为内存偏移指针使用(相对于EAX、ECX、EDX),DS是默认的段寄存器或选择器。在保护模式中,同样可以起这个作用。

ECX

32-bit宽

通用寄存器。通常用于特定指令的计数。在保护模式中,也可以作为内存偏移指针(此时,DS作为寄存器或段选择器)。

EDX

32-bit宽

通用寄存器。在某些运算中作为EAX的溢出寄存器(例如乘、除)。在保护模式中,也可以作为内存偏移指针(此时,DS作为段寄存器或选择器)。

上述寄存器同EAX一样包括对应的16-bit和8-bit分组。

用作内存指针的特殊寄存器

ESI

32-bit宽

通常在内存操作指令中作为“源地址指针”使用。当然,ESI可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。

EDI

32-bit宽

通常在内存操作指令中作为“目的地址指针”使用。当然,EDI也可以被装入任意的数值,但通常没有人把它当作通用寄存器来用。DS是默认段寄存器或选择器。

EBP

32-bit宽

这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造‘堆栈帧’来保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何数据。SS是它的默认段寄存器或选择器。

注意,这三个寄存器没有对应的8-bit分组。换言之,你可以通过SI、DI、BP作为别名访问他们的低16位,却没有办法直接访问他们的低8位。

段寄存器和选择器

实模式下的段寄存器到保护模式下摇身一变就成了选择器。不同的是,实模式下的“段寄存器”是16-bit的,而保护模式下的选择器是32-bit的。

CS 代码段,或代码选择器。同IP寄存器(稍后介绍)一同指向当前正在执行的那个地址。处理器执行时从这个寄存器指向的段(实模式)或内存(保护模式)中获取指令。除了跳转或其他分支指令之外,你无法修改这个寄存器的内容。

DS 数据段,或数据选择器。这个寄存器的低16 bit连同ESI一同指向的指令将要处理的内存。同时,所有的内存操作指令默认情况下都用它指定操作段(实模式)或内存(作为选择器,在保护模式。这个寄存器可以被装入任意数值,然而在这么做的时候需要小心一些。方法是,首先把数据送给AX,然后再把它从AX传送给DS(当然,也可以通过堆栈来做).

ES 附加段,或附加选择器。这个寄存器的低16 bit连同EDI一同指向的指令将要处理的内存。同样的,这个寄存器可以被装入任意数值,方法和DS类似。

FS F段或F选择器(推测F可能是Free?)。可以用这个寄存器作为默认段寄存器或选择器的一个替代品。它可以被装入任何数值,方法和DS类似。

GS G段或G选择器(G的意义和F一样,没有在Intel的文档中解释)。它和FS几乎完全一样。

SS 堆栈段或堆栈选择器。这个寄存器的低16bit连同ESP一同指向下一次堆栈操作(push和pop)所要使用的堆栈地址。这个寄存器也可以被装入任意数值,你可以通过入栈和出栈操作来给他赋值,不过由于堆栈对于很多操作有很重要的意义,因此,不正确的修改有可能造成对堆栈的破坏。

* 注意一定不要在初学汇编的阶段把这些寄存器弄混。他们非常重要,而一旦你掌握了他们,你就可以对他们做任意的操作了。段寄存器,或选择器,在没有指定的情况下都是使用默认的那个。这句话在现在看来可能有点稀里糊涂,不过你很快就会在后面知道如何去做。

特殊寄存器(指向到特定段或内存的偏移量):

EIP 这个寄存器非常的重要。这是一个32位宽的寄存器 ,同CS一同指向即将执行的那条指令的地址。不能够直接修改这个寄存器的值,修改它的唯一方法是跳转或分支指令。(CS是默认的段或选择器)

ESP 这个32位寄存器指向堆栈中即将被操作的那个地址。尽管可以修改它的值,然而并不提倡这样做,因为如果你不是非常明白自己在做什么,那么你可能造成堆栈的破坏。对于绝大多数情况而言,这对程序是致命的。(SS是默认的段或选择器)

IP: Instruction Pointer, 指令指针

SP: Stack Pointer, 堆栈指针

好了,上面是最基本的寄存器。下面是一些其他的寄存器,你甚至可能没有听说过它们。(都是32位宽):

CR0, CR2, CR3(控制寄存器)。举一个例子,CR0的作用是切换实模式和保护模式。

还有其他一些寄存器,D0, D1, D2, D3, D6和D7(调试寄存器)。他们可以作为调试器的硬件支持来设置条件断点。

TR3, TR4, TR5, TR6 和 TR? 寄存器(测试寄存器)用于某些条件测试。

最后我们要说的是一个在程序设计中起着非常关键的作用的寄存器:标志寄存器。

我想下个汇编语言视频教程 但不知道哪个好 谁能推荐一个 先谢了

其实这个要取决于你需要学那个体系架构的汇编,每个体系架构都不一样的。
推荐你以下这部教程:
罗克露副教授的:
推荐此部的原因是你学习汇编,不可能不学习计算机组成原理,所以干脆一起学吧:
***隐藏网址***
希望对楼主有用。

怎么学汇编语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么学汇编语言、怎么学汇编语言的信息别忘了在本站进行查找哦。

汇编语言免费入门教程(怎么学汇编语言)

本文编辑:admin

更多文章:


维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

维热纳尔密码翻译器(请问有谁知道古代密码学的发展过程)

今天给各位分享请问有谁知道古代密码学的发展过程的知识,其中也会对请问有谁知道古代密码学的发展过程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录请问有谁知道古代密码学的发展过程密码解密主要是用运用什么原理维热纳

2026年7月10日 23:15

手机老是出现failed(华为手机errconnectfailed)

手机老是出现failed(华为手机errconnectfailed)

“手机老是出现failed”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机老是出现failed(华为手机errconnectfailed)!本文目录华为手机errconnectfailed苹果手机为什么总出现失败怎么办啊

2025年12月31日 05:30

快递公司网站设计(中通快递logo的设计理念是什么)

快递公司网站设计(中通快递logo的设计理念是什么)

今天给各位分享中通快递logo的设计理念是什么的知识,其中也会对中通快递logo的设计理念是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录中通快递logo的设计理念是什么联邦快递网站的功能和特点物流公司网

2025年8月28日 15:45

mathematica10下载(mathematica免费下载地址)

mathematica10下载(mathematica免费下载地址)

大家好,今天小编来为大家解答以下的问题,关于mathematica10下载,mathematica免费下载地址这个很多人还不知道,现在让我们一起来看看吧!本文目录mathematica免费下载地址mathematica下载mathemati

2026年1月12日 23:00

catchphrase的意思(catchphrase是什么意思)

catchphrase的意思(catchphrase是什么意思)

大家好,今天小编来为大家解答以下的问题,关于catchphrase的意思,catchphrase是什么意思这个很多人还不知道,现在让我们一起来看看吧!本文目录catchphrase是什么意思phrase是什么意思catchphrase是什么

2025年7月19日 18:45

server作主语(英语you must set two server name values怎么翻译)

server作主语(英语you must set two server name values怎么翻译)

大家好,关于server作主语很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于英语you must set two server name values怎么翻译的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决

2026年2月25日 04:00

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

c语言求最大公约数和最小公倍数辗转相除法(c语言求最大公约数和最小公倍数)

各位老铁们好,相信很多人对c语言求最大公约数和最小公倍数辗转相除法都不是特别的了解,因此呢,今天就来为大家分享下关于c语言求最大公约数和最小公倍数辗转相除法以及c语言求最大公约数和最小公倍数的问题知识,还望可以帮助大家,解决大家的一些困惑,

2025年6月24日 13:30

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

表单大师下载表单大师app下载(眉山市幼儿报名登记表怎么下载下来)

各位老铁们,大家好,今天由我来为大家分享表单大师下载表单大师app下载,以及眉山市幼儿报名登记表怎么下载下来的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2025年7月1日 03:15

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

webservice访问地址(浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL)

大家好,webservice访问地址相信很多的网友都不是很明白,包括浏览器中怎么访问WSDL文件我知道访问java的webservice为:http://localhost:8888/服务名/方法名WSDL也是一样,不过没有关系,接下来就来

2026年5月7日 20:30

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

count函数怎么用来统计单元格数量(EXCEL中如何统计此列有数字的单元格个数)

本篇文章给大家谈谈count函数怎么用来统计单元格数量,以及EXCEL中如何统计此列有数字的单元格个数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔

2025年9月23日 17:15

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

eclipse jdk编译版本(JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本)

今天给各位分享JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本的知识,其中也会对JDK7搭配什么版本的eclipse若是jdk 1.7的话该用Eclipse的哪个版本进行解释,如果能碰巧解决你现在面临的

2026年1月15日 13:30

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

奔驰e300可以插u盘听歌吗(奔驰E300怎么插U盘)

今天给各位分享奔驰E300怎么插U盘的知识,其中也会对奔驰E300怎么插U盘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录奔驰E300怎么插U盘奔驰e300如何插U盘听歌2011奔驰e300车上有插u盘的地方

2025年12月11日 03:45

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

模板制作检验批多少米一张(3000多米的围墙,每100米做一个检验批具体怎么做)

大家好,关于模板制作检验批多少米一张很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于3000多米的围墙,每100米做一个检验批具体怎么做的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2026年9月17日 02:30

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

easyuidatagrid 获取选中行数据到详情页(easyui datagrid 怎样获取点击行的数据)

大家好,如果您还对easyuidatagrid 获取选中行数据到详情页不太了解,没有关系,今天就由本站为大家分享easyuidatagrid 获取选中行数据到详情页的知识,包括easyui datagrid 怎样获取点击行的数据的问题都会给

2025年6月21日 20:00

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

img格式打开(win7电脑如何打开img文件win7系统打开img文件的方法)

本篇文章给大家谈谈img格式打开,以及win7电脑如何打开img文件win7系统打开img文件的方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录win7电脑如何打开img文件win7系统打开img文件的方法img用什么软件

2025年9月24日 08:30

befarform是什么意思(be far form中的form什么意思 说详细些)

befarform是什么意思(be far form中的form什么意思 说详细些)

其实befarform是什么意思的问题并不复杂,但是又很多的朋友都不太了解be far form中的form什么意思 说详细些,因此呢,今天小编就来为大家分享befarform是什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个

2025年12月14日 23:15

小时代2免费观看(小时代2电影的剧情简介谁知道)

小时代2免费观看(小时代2电影的剧情简介谁知道)

本篇文章给大家谈谈小时代2免费观看,以及小时代2电影的剧情简介谁知道对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录小时代2电影的剧情简介谁

2025年6月8日 05:45

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

js禁止页面前进和后退(禁止浏览器页面的前进和后退的方式)

今天给各位分享禁止浏览器页面的前进和后退的方式的知识,其中也会对禁止浏览器页面的前进和后退的方式进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录禁止浏览器页面的前进和后退的方式用js如何控制 html5 vid

2025年10月26日 14:15

xml文件和db文件的区别(db文件是什么文件啊)

xml文件和db文件的区别(db文件是什么文件啊)

“xml文件和db文件的区别”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看xml文件和db文件的区别(db文件是什么文件啊)!本文目录db文件是什么文件啊db文件是什么格式文件类型有那些db文件是什么文件啊.db是date

2026年7月9日 17:15

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

两函数相加定义域怎么求(两函数相加 定义区怎么求啊拜托了各位 谢谢)

各位老铁们好,相信很多人对两函数相加定义域怎么求都不是特别的了解,因此呢,今天就来为大家分享下关于两函数相加定义域怎么求以及两函数相加 定义区怎么求啊拜托了各位 谢谢的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目

2026年9月20日 15:30

近期文章

ilitate(imitate意思是)
2026-09-25 23:30:01
本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索