当前位置:首页 » 编程软件 » 汇编语言编译植入

汇编语言编译植入

发布时间: 2023-08-23 01:07:15

A. 汇编语言的那个编译链接 的详细过程 每一步骤

LZ请跟着我的操作走

1.将写好的汇编代码保存为1.asm
2.将1.asm复制到c盘下
3.点开始(即左下标那个windows图标),找到运行,或(附件中的命令提示符)
4.找到运行后,输入cmd 或 command
5.进入后输入cd c:\
6.输入masm 1;(1后面有分号),然后回车
7.输入link 1;然后回车
8.cls清屏然后回车
9.输入1.exe,然后回车
10.完成

至于怎么debug
步骤:
1-8同上
9.输入debug 1.exe,然后回车
10.完成
至于debug 中的 'r' 'd' 't' 自己上网找大把

我的系统是win 7,
你的masm 和 link debug 要放在C:\Windows文件夹
PS: 若有不明白的地方,可以追问

B. 如何把汇编程序嵌入到c语言

不同编译器嵌入汇编的方式不一样,具体如下:

一、Turbo C, 也就是所说的TC。

1、使用预处理程序的伪指令#asm和#endasm,#asm用来开始一个汇编程序块,而#endasm指令用于该块的结束。

参考代码:

intmul(inta,intb)
{
/*汇编开始*/
#asm
movax,wordptr8[bp]
imulaxwordptr10[bp]
#endasm
/*汇编结束。*/
}

2、使用asm语句:
格式:asm<汇编语句>

参考代码:

intmul(inta,intb)
{
asmmovax,wordptr8[bp]
asmimulaxwordptr10[bp]
/*
每个asm对应一句汇编
注意结尾不需要分号
*/
}

二、VC++/VS

格式:
__asm 汇编指令 [ ; ]
__asm { 汇编指令 } [ ; ]
asm前面是两条下划线,后面的方括号内容表示分号可有可无。
使用方法:
1、一条一条地用:

__asmmoval,2
__asmmovdx,0xD007
__asmoutdx,al

每行一条汇编, 可以有分号,也可以没有。

2、组成一块地用:

__asm{
moval,2
movdx,0xD007
outdx,al
}

整体作为一个汇编代码块。

3、也可以将多条汇编写在一行:

__asmmoval,2__asmmovdx,0xD007__asmoutdx,al

三、GNU GCC

GCC对汇编的支持是最丰富的,简单介绍如下:

1、 用到的关键字:
“__asm__” 表示后面的代码为内嵌汇编,“asm”是“__asm__”的别名。
“__volatile__”表示编译器不要优化代码,后面的指令保留原样,“volatile”是它的别名。
括号里面是汇编指令。
内嵌汇编语法如下:
__asm__(
汇编语句模板:
输出部分:
输入部分:
破坏描述部分)
一个简单的汇编模板:

inta=10,b;
asm("movl%1,%%eax;
movl%%eax,%0;"
:"=r"(b)/*输出部*/
:"r"(a)/*输入部*/
:"%eax"/*毁坏部*/
);

表示C语言里的“b=a;”。
里边r表示使用任意寄存器,%0、%1表示使用两个寄存器,一般只能%0~%9共十个操作数,按输入输出部变量出现顺序进行映射。
寄存器用两个百分号,是因为使用了%0%1这些数字使百分号有了特殊意义,所以在操作数出现的寄存器必须用双百分表示。
毁坏部里边的%eax表示eax寄存器在汇编代码块执行过程中会被改写,在执行前要保护好,这是提交给编译器决定的。

C. 请问汇编程序, 解释程序, 编译程序分别指

1、汇编程序

把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向机器的语言,由汇编执行指令和汇编伪指令组成。

采用汇编语言编写程序虽不如高级程序设计语言简便、直观,但是汇编出的目标程序占用内存较少、运行效率较高,且能直接引用计算机的各种设备资源。它通常用于编写系统的核心部分程序,或编写需要耗费大量运行时间和实时性要求较高的程序段。

2、解释程序

解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。

3、编译程序

编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。

它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。

(3)汇编语言编译植入扩展阅读:

工作过程

1、汇编程序

输入汇编语言源程序。检查语法的正确性,如果正确,则将源程序翻译成等价的二进制或浮动二进制的机器语言程序,并根据用户的需要输出源程序和目标程序的对照清单;如果语法有错,则输出错误信息,指明错误的部位、类型和编号。最后,对已汇编出的目标程序进行善后处理。

2、解释程序

由总控程序完成初始化工作。依次从源程序中取出一条语句进行语法检查,如有错,输出错误信息;如果通过了语法检查,则根据语句翻泽成相应的指令并执行它。检查源程序是否已经全部解释执行完毕,如果未完成则继续解释并执行下一条语句,直到全部语句都处理完毕。

3、编译程序

先进行词法分析与语法分析,然后生成中间代码,接着对程序进行多种等价变换来代码优化,最后生成目标代码。

D. 什么是编译程序和汇编程序

分类: 电脑/网络
问题描述:

什么是编译程序和汇编程序?他们有什么区别?和机器语言、高级语言汇编语言有什么样的联系

解析:

用汇编语言或高级语言编写的程序,必须先送入计算机,经过转换成用机器语言表示的目标程序(这个过程即编译),才能由计算机执行。执行转换过程的程序叫编译程序。汇编程序是指没有编译过的汇编语言源文件。

编译程序转换过的叫目标程序,也就是机器语言。

编译程序的工作情况有三种:汇编型、解释型和编译型。汇编型编稿册译程序用来将汇编语言编写的程序,按照一一对应的关系,转换郑斗成用机器语言表示的程序。解释型编译程序将高喊敬磨级语言程序的一个语句,先解释成为一组机器语言的指令,然后立即执行,执行完了,取下一组语句解释和执行,如此继续到完成一个程序为止。用解释型编译程序,执行速度很慢,但可以进行人和计算机的"对话",随时可以修改高级语言的程序。BASIC语言就是解释型高级语言。编译型编译程序将高级语言编写的程序,一次就会部翻译成机器语言表示的程序,而且过程进行很快,在过程中,不能进行人机对话修改。FORTRAN语言就是编译型高级语言。

E. 汇编程序是怎么编译的

汇编语言是一种低级语言,汇编语言是汇编指令集、伪指令集和使用它们规则的统称,使用具有一定含义的符号为助忆符,用指令助忆符、符号地址等组成的符号指令称为汇编格式指令。


过程:

  1. 编辑:用编辑软件(EDIT.EXE或记事本)形成源程序(.ASM)

  2. 汇编:用汇编程序(MASM.EXE)对源程序进行汇编,形成目标文件(.OBJ),格式如下:MASM LX.ASM;

  3. 连接:用连接程序(LINK.EXE)对目标程序进行连接,形成可执行文件(.EXE),格式如下:LINK LX.OBJ;

  4. 执行:如果结果在屏幕在显示,则直接执行可执行文件。

  5. 调试:用调试程序(LINK.EXE)对可执行文件进行调试,格式如下:DEBUG LX.EXE


汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。汇编程序(如MASM)的原理实际上就是把汇编的代码转成电脑可以识别的二进制码

F. 如何对汇编语言进行编译

初学的话建议用masm和link。这个是俩个可执行文件,一个编译用,一个连接用。一般下载还有个ml的是俩个的集合体。别的不多说我用的就是这个,或者你去网络上下载一个

G. 编译和汇编的区别是什么

1.定义区别

①编译原理旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。

②汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。

2.处理方式区别

①编译过程与解释挺像,区别就在于编译是将所有的源代码指令一次性成翻目标代码并执行。

②汇编过程就是把汇编指令一对一地翻译成01机器码的过程。而采用这种处理方式的语言只有一类:汇编语言。

3.特点区别

①编译语言的特点就是不需要解释器的参与,所以运行比较快,但是编译好的程序只能在当前平台运行,是个局限性。

②汇编语言是当今世界上历史最早,应用最广,功能最强大,运行速度最快的编程语言。但是汇编语言开发工期长,可读性差,并且不能跨平台编程。

H. 汇编语言(面向机器的程式设计语言)详细资料大全

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可程式器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或运算元的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

许多汇编程式为程式开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。

汇编语言不像其他大多数的程式设计语言一样被广泛用于程式设计。在今天的实际套用中,它通常被套用在底层,硬体操作和高要求的程式最佳化的场合。驱动程式、嵌入式作业系统和实时运行程式都需要汇编语言。

基本介绍 中文名 :汇编语言 外文名 :Assembly Language 学科 :软体工程 产生年代 :20世纪50年代 编译方式 :汇编 发展历程,语言特点,总体特点,优点,缺点,语言组成,数据传送指令,整数和逻辑运算指令,移位指令,位操作指令,条件设定指令,控制转移指令,串操作指令,输入输出指令,相关技术,汇编器,编译环境,发展前景,实际套用,经典教材,x86处理器,ARM及单片机, 发展历程 说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。 上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。在我们常用的PC机中,有一个晶片来完成上面所说的计算机的功能。这个晶片就是我们常说的CPU(Central Processing Unit,中央处理单元)。每一种微处理器,由于硬体设计和内部结构的不同,就需要用不同的电平脉冲来控制,使它工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。 早期的程式设计均使用机器语言。程式设计师们将用0, 1数字编成的程式代码打在纸带或卡片上,1打孔,0不打孔,再将程式通过纸带机或卡片机输入计算机,进行运算。这样的机器语言由纯粹的0和1构成,十分复杂,不方便阅读和修改,也容易产生错误。程式设计师们很快就发现了使用机器语言带来的麻烦,它们难于辨别和记忆,给整个产业的发展带来了障碍,于是汇编语言产生了。 汇编语言的主体是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。 操作:暂存器BX的内容送到AX中1000100111011000机器指令movax,bx汇编指令 此后,程式设计师们就用汇编指令编写源程式。可是,计算机能读懂的只有机器指令,那么如何让计算机执行程式设计师用汇编指令编写的程式呢?这时,就需要有一个能够将汇编指令转换成机器指令的翻译程式,这样的程式我们称其为编译器。程式设计师用汇编语言写出源程式,再用汇编编译器将其编译为机器码,由计算机最终执行。 工作过程 语言特点 汇编语言是直接面向处理器(Processor)的程式设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。 汇编语言的另一个特点就是它所操作的对象不是具体的数据,而是暂存器或者存储器,也就是说它是直接和暂存器和存储器打交道,这也是为什么汇编语言的执行速度要比其它语言快,但同时这也使编程更加复杂,因为既然数据是存放在暂存器或存储器中,那么必然就存在着寻址方式,也就是用什么方法找到所需要的数据。例如上面的例子,我们就不能像高级语言一样直接使用数据,而是先要从相应的暂存器AX、BX 中把数据取出。这也就增加了编程的复杂性,因为在高级语言中寻址这部分工作是由编译系统来完成的,而在汇编语言中是由程式设计师自己来完成的,这无异增加了编程的复杂程度,降低了程式的可读性。 再者,汇编语言指令是机器指令的一种符号表示,而不同类型的CPU 有不同的机器指令系统,也就有不同的汇编语言,所以,汇编语言程式与机器有着密切的关系。所以,除了同系列、不同型号CPU 之间的汇编语言程式有一定程度的可移植性之外,其它不同类型(如:小型机和微机等)CPU 之间的汇编语言程式是无法移植的,也就是说,汇编语言程式的通用性和可移植性要比高级语言程式低。 正因为汇编语言有“与机器相关性”的特性,程式设计师用汇编语言编写程式时,可充分对机器内部的各种资源进行合理的安排,让它们始终处于最佳的使用状态。这样编写出来的程式执行代码短、执行速度快。汇编语言是各种程式语言中与硬体关系最密切、最直接的一种,在时间和空间的效率上也最高的一种,它是高等院校计算机套用技术必修的专业课程之一,对于训练学生掌握程式设计技术,熟悉上机操作和程式调试技术有重要作用 总体特点 1.机器相关性 这是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。因为是机器指令的符号化表示,故不同的机器就有不同的汇编语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程式。 2.高速度和高效率 汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬体设备,如磁盘、存储器、CPU、I/O连线端口等,且占用记忆体少,执行速度快,是高效的程式设计语言。 3.编写和调试的复杂性 由于是直接控制硬体,且简单的任务也需要很多汇编语言语句,因此在进行程式设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软、硬体资源。这样,就不可避免地加重了程式设计师的负担。与此相同,在程式调试时,一旦程式的运行出了问题,就很难发现。 优点 1、因为用汇编语言设计的程式最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬体设备,如磁盘、存储器、CPU、I/O连线端口等。使用汇编语言,可以访问所有能够被访问的软、硬体资源。 2、目标代码简短,占用记忆体少,执行速度快,是高效的程式设计语言,经常与高级语言配合使用,以改善程式的执行速度和效率,弥补高级语言在硬体控制方面的不足,套用十分广泛。 缺点 1、汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。不同的处理器有不同的汇编语言语法和编译器,编译的程式无法在不同的处理器上执行,缺乏可移植性; 2、难于从汇编语言代码上理解程式设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试; 3、使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行最佳化,开发效率很低,周期长且单调。 语言组成 数据传送指令 这部分指令包括通用数据传送指令MOV、条件传送指令CMOV 、堆叠操作指令PUSH/PUSHA/PUSHAD/POP/POPA/POPAD、交换指令XCHG/XLAT/BSWAP、地址或段描述符选择子传送指令LEA/LDS/LES/LFS/LGS/LSS等。注意,CMOV不是一条具体的指令,而是一个指令簇,包括大量的指令,用于根据EFLAGS暂存器的某些位状态来决定是否执行指定的传送操作。 整数和逻辑运算指令 这部分指令用于执行算术和逻辑运算,包括加法指令ADD/ADC、减法指令SUB/SBB、加一指令INC、减一指令DEC、比较操作指令CMP、乘法指令MUL/IMUL、除法指令DIV/IDIV、符号扩展指令CBW/CWDE/CDQE、十进制调整指令DAA/DAS/AAA/AAS、逻辑运算指令NOT/AND/OR/XOR/TEST等。 移位指令 这部分指令用于将暂存器或记忆体运算元移动指定的次数。包括逻辑左移指令SHL、逻辑右移指令SHR、算术左移指令SAL、算术右移指令SAR、循环左移指令ROL、循环右移指令ROR等。 位操作指令 这部分指令包括位测试指令BT、位测试并置位指令BTS、位测试并复位指令BTR、位测试并取反指令BTC、位向前扫描指令BSF、位向后扫描指令BSR等。 条件设定指令 这不是一条具体的指令,而是一个指令簇,包括大约30条指令,用于根据EFLAGS暂存器的某些位状态来设定一个8位的暂存器或者记忆体运算元。比如SETE/SETNE/SETGE等等。 控制转移指令 这部分包括无条件转移指令JMP、条件转移指令J /JCXZ、循环指令LOOP/LOOPE/LOOPNE、过程调用指令CALL、子过程返回指令RET、中断指令INTn、INT3、INTO、IRET等。注意,J 是一个指令簇,包含了很多指令,用于根据EFLAGS暂存器的某些位状态来决定是否转移;INT n是软中断指令,n可以是0到255之间的数,用于指示中断向量号。 串操作指令 这部分指令用于对数据串进行操作,包括串传送指令MOVS、串比较指令CMPS、串扫描指令SCANS、串载入指令LODS、串保存指令STOS,这些指令可以有选择地使用REP/REPE/REPZ/REPNE和REPNZ的前缀以连续操作。 输入输出指令 这部分指令用于同外围设备交换数据,包括连线端口输入指令IN/INS、连线端口输出指令OUT/OUTS。 高级语言辅助指令 这部分指令为高级语言的编译器提供方便,包括创建栈帧的指令ENTER和释放栈帧的指令LEAVE。 控制和特权指令 这部分包括无操作指令NOP、停机指令HLT、等待指令WAIT/MWAIT、换码指令ESC、汇流排封锁指令LOCK、记忆体范围检查指令BOUND、全局描述符表操作指令LGDT/SGDT、中断描述符表操作指令LIDT/SIDT、局部描述符表操作指令LLDT/SLDT、描述符段界限值载入指令LSR、描述符访问权读取指令LAR、任务暂存器操作指令LTR/STR、请求特权级调整指令ARPL、任务切换标志清零指令CLTS、控制暂存器和调试暂存器数据传送指令MOV、高速快取控制指令INVD/WBINVD/INVLPG、型号相关暂存器读取和写入指令RDMSR/WRMSR、处理器信息获取指令CPUID、时间戳读取指令RDTSC等。 浮点和多媒体指令 这部分指令用于加速浮点数据的运算,以及用于加速多媒体数据处理的单指令多数据(SIMD及其扩展SSEx)指令。这部分指令数据非常庞大,无法一一列举,请自行参考INTEL手册。 虚拟机扩展指令 这部分指令包括INVEPT/INVVPID/VMCALL/VMCLEAR/VMLAUNCH/VMRESUME/VMPTRLD/VMPTRST/VMREAD/VMWRITE/VMXOFF/VMON等。 相关技术 汇编器 典型的现代 汇编器 (assembler)建造目标代码,由解译组语指令集的易记码(mnemonics)到操作码(OpCode),并解析符号名称(symbolic names)成为存储器地址以及其它的实体。使用符号参考是汇编器的一个重要特征,它可以节省修改程式后人工转址的乏味耗时计算。基本就是把机器码变成一些字母而已,编译的时候再把输入的指令字母替换成为晦涩难懂机器码。 编译环境 用汇编语言等非机器语言书写好的符号程式称为源程式,汇编语言编译器的作用是将源程式翻译成目标程式。目标程式是机器语言程式,当它被安置在记忆体的预定位置上后,就能被计算机的CPU处理和执行。 汇编的调试环境总的来说比较少,也很少有非常好的编译器。编译器的选择依赖于目标处理器的类型和具体的系统平台。一般来说,功能良好的编译器用起来应当非常方便,比如,应当可以自动整理格式、语法高亮显示,集编译、连结和调试为一体,方便实用。 对于广泛使用的个人计算机来说,可以自由选择的汇编语言编译器有MASM、NASM、TASM、GAS、FASM、RADASM等,但大都不具备调试功能。如果是为了学习汇编语言,轻松汇编因为拥有一个完善的集成环境,是一款非常适合初学者的汇编编译器。 发展前景 汇编语言是机器语言的助记符,相对于比枯燥的机器代码易于读写、易于调试和修改,同时优秀的汇编语言设计者经过巧妙的设计,使得汇编语言汇编后的代码比高级语言执行速度更快,占记忆体空间少等优点,但汇编语言的运行速度和空间占用是针对高级语言并且需要巧妙设计,而且部分高级语言在编译后代码执行效率同样很高,所以此优点慢慢弱化。而且在编写复杂程式时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。常说汇编语言是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是计算机(或微机)底层设计程式设计师必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为IT软体,也是我们常说的计算机套用软体编程,在熟练的程式设计师手里,使用汇编语言编写的程式,运行效率与性能比其它语言写的程式相对提高,但是代价是需要更长的时间来最佳化,如果对计算机原理及编程基础不扎实,反而增加其开发难度,实在是得不偿失,对比2010年前后的软体开发,已经是市场化的软体行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下的必然结果。 但是,迄今为止,还没有程式设计师敢断定汇编语言是不需要学的,同时,汇编语言(Assembly Language)是面向机器的程式设计语言,设计精湛的汇编程式设计师,部分已经脱离软体开发,挤身于工业电子编程中。对于功能相对小巧但硬体对语言设计要求苛刻的行业,如4位单片机,由于其容量及运算,此行业的电子工程师一般负责从开发设计电路及软体控制,主要开发语言就是汇编,c语言使用只占极少部分,而电子开发工程师是千金难求,在一些工业公司,一个核心的电子工程师比其它任何职员待遇都高,对比起来,一般电子工程师待遇是程式设计师的十倍以上。这种情况是因为21世纪以来,学习汇编的人虽然也不少,但是真正能学到精通的却不多,它相对于高级语言难学,难用,适用范围小,虽然简单,但是过于灵活,学习过高级语言的人去学习汇编比一开始学汇编的人难得多,但是学过汇编的人学习高级语言却很容易,简从繁易,繁从简难。对于一个全面了解微机原理的程式设计师,汇编语言是必修语言。 实际套用 随着现代软体系统越来越庞大复杂,大量经过了封装的高级语言如C/C++,Pascal/Object Pascal也应运而生。这些新的语言使得程式设计师在开发过程中能够更简单,更有效率,使软体开发人员得以应付快速的软体开发的要求。而汇编语言由于其复杂性使得其适用领域逐步减小。但这并不意味着汇编已无用武之地。由于汇编更接近机器语言,能够直接对硬体进行操作,生成的程式与其他的语言相比具有更高的运行速度,占用更小的记忆体,因此在一些对于时效性要求很高的程式、许多大型程式的核心模组以及工业控制方面大量套用。 此外,虽然有众多程式语言可供选择,但汇编依然是各大学计算机科学类专业学生的必修课,以让学生深入了解计算机的运行原理。 历史上,汇编语言曾经是非常流行的程式设计语言之一。随着软体规模的增长,以及随之而来的对软体开发进度和效率的要求,高级语言逐渐取代了汇编语言。但即便如此,高级语言也不可能完全替代汇编语言的作用。就拿Linux核心来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码。由于这部分代码与硬体的关系非常密切,即使是C语言也会显得力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬体的性能。 首先,汇编语言的大部分语句直接对应着机器指令,执行速度快,效率高,代码体积小,在那些存储器容量有限,但需要快速和实时回响的场合比较有用,比如仪器仪表和工业控制设备中。 其次,在系统程式的核心部分,以及与系统硬体频繁打交道的部分,可以使用汇编语言。比如作业系统的核心程式段、I/O接口电路的初始化程式、外部设备的低层驱动程式,以及频繁调用的子程式、动态连线库、某些高级绘图程式、视频游戏程式等等。 再次,汇编语言可以用于软体的加密和解密、计算机病毒的分析和防治,以及程式的调试和错误分析等各个方面。 最后,通过学习汇编语言,能够加深对计算机原理和作业系统等课程的理解。通过学习和使用汇编语言,能够感知、体会和理解机器的逻辑功能,向上为理解各种软体系统的原理,打下技术理论基础;向下为掌握硬体系统的原理,打下实践套用基础。 经典教材 汇编语言教材很多,各种处理器都有涉及,粗略统计不下百种。在这么多的教材里,用得较多的可以分类列举如下: x86处理器 1.《x86汇编语言:从实模式到保护模式》,李忠着,电子工业出版社,2013-1 。 基于INTEL x86处理器、NASM编译器和BOCHS虚拟机。汇编语言就是处理器的语言,从这个意义上来说,既然学习汇编语言,就必须直接面向硬体编程,而不是使用莫名其妙的DOS中断和API调用。这是一本有趣的书,它没有把篇幅花在计算一些枯燥的数学题上。相反,它教你如何直接控制硬体,在不借助于BIOS、DOS、Windows、Linux或者任何其他软体支持的情况下来显示字符、读取硬盘数据、控制其他硬体等。 我们知道,32位和64位是主流,实模式和DOS作业系统已经成为历史,Linux和Windows都工作在保护模式下。这本书从实模式讲到32位保护模式,尤其以32位保护模式为重点,阅读本书,对理解现代计算机和现代作业系统的工作原理有非常大的帮助作用。 2.《汇编语言》(第2版),王爽着,清华大学出版社,2013-4-1 基于INTEL 8086处理器、MASM编译器,以及DOS平台的汇编教材,完全以8086处理器的实模式为主,不涉及常用的32位和64位模式,但因为通俗易懂,读者反映很好。 3.《80X86汇编语言程式设计教程》,杨季文等 编着,清华大学出版社,1999-3-1 基于INTEL x86处理器、MASM和TASM编译器,包含16位实模式和32位保护模式的内容,而且对后者讲述较为详细。 4.《32位汇编语言程式设计》,钱晓捷编着,机械工业出版社,2011-8-1 基于INTEL x86处理器、MASM编译器,以及WINDOWS平台的汇编教材。 5.《16/32位微机原理汇编语言及接口技术》,钱晓捷,陈涛编着,机械工业出版社,2005-2-1 基于INTEL x86处理器,论述16位微型计算机的基本原理、汇编语言和接口技术,并引出32位微机系统相关技术。 6.《Intel汇编语言程式设计》(第五版),(美)欧文着,电子工业出版社,2012-7-1 基于INTEL x86处理器、MASM编译器,以及DOS/WINDOWS平台的汇编教材,既有16位实模式的内容,也有32位保护模式的内容。 7.《汇编语言的编程艺术》(第2版),(美)海德着,清华大学出版社,2011-12-1 基于INTEL x86处理器,使用了作者自制的高级语言汇编器(High Level Assembler,HLA)作为教学工具,以部分地获得高级语言的优势和功能。 8.《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汇编语言程式设计的专着。

热点内容
ftp的服务系统主要包括什么 发布:2025-02-03 21:41:33 浏览:305
换汽车压缩机 发布:2025-02-03 21:38:10 浏览:68
安卓版的迷你世界怎么登录 发布:2025-02-03 21:28:05 浏览:586
dt如何编译 发布:2025-02-03 21:16:59 浏览:564
unity调用脚本 发布:2025-02-03 21:13:21 浏览:268
php方法类 发布:2025-02-03 21:01:56 浏览:444
电脑基岩版材质包怎么安装到服务器里 发布:2025-02-03 20:57:33 浏览:391
linux文件组 发布:2025-02-03 20:53:51 浏览:330
db2存储执行变慢 发布:2025-02-03 20:42:21 浏览:766
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:433