第1个回答 2010-09-28
实际上汇编语言的核心就是处理器原理。
而汇编指令根本就是寄存器、内存之间的操作。
很多汇编指令的核心就是将寄存器、内存内的数据互相移动。
在数据传送的基础上添加了别的功能。
例如8086处理器的加法指令
ADD reg,imm/reg/mem
可以用
reg ← reg + imm/reg/mem表示
它的含义就将第一个reg(某个寄存器里的数据)与第二imm/reg/mem(立即数、某个内存里、某个寄存器里的数据)相加,将它们的结果在放入第一个reg里面。
同时该指令还有些附加影响。
对于指令的学习就是知道它做什么,对哪些东西有影响。
其他很多资料有很多,特别是Intel和AMD公司的处理器编程指南中就有详细的介绍。
例如Intel公司的
《Intel Architecture Software Developer’s Manual Volume 2:Instruction Set Reference》(Intel 体系结构软件开发参考,第二卷:指令集参考)
就有详细的处理器指令介绍,并且所有的指令都以相同的格式说明。
然后就是处理器的基本结构。
其中最重要的就是寄存器,例如32位的x86系列处理器,有寄存器EAX、EBX、ECX、EDX等等,几乎所有的指令都与这些寄存器(当然还包括内存)有关。
随后一个问题就是程序的问题,
其中,使用汇编编程不太实用,它只用于高级编程语言无法解决的问题。
而现在的汇编语言的程序采用了类似于高级语言的程序结构。例如C语言是由一系列函数组成。而汇编语言也采用类似的结构,可以称为子程序,而这种子程序与高级语言的函数可以进行转换。所以做汇编程序设计还是通过高级语言来实现,因为高级语言会屏蔽汇编语言很多细节。当用高级语言解决好问题后,将相应的函数,转换成汇编语言的子程序即可。