一、汇编语言的介绍
1、汇编语言和处理器指令集高度相关,不同指令集的汇编语言不兼容。
2、汇编语言是对机器语言的一种抽象,用英文字符来代表运算和控制指令,用英文字母和数字代表操作数。
二、常用的汇编语言
有 x86的汇编语言,ARM汇编语言,开源指令集。
三、汇编指令的格式
格式如下:
1、每次占据一行。
2、采用下列格式:
操作码 操作数1, 操作数2案例: mov al, 33
mov是操作码,al, 33 是操作数。
注意:
操作码代表基本操作,例如相加、相减、相除、移位、比较、赋值等运算。
操作数代表运算数据存放位置,或者常数指定。
四、操作码注意事项
操作码代表运算和控制操作,有的需要2个操作数,有的只需要1个操作数,要查官方文档。
不同版本可能操作码不一样。
通俗解释:操作数就是加减乘除,输入输出等操作,只不过每次只能做一个运算或者操作,不能一心两用。
五、操作数注意事项
1、操作数一般是寄存器、数据栈和常量来充当。
2、操作数如果使用寄存器,那么需要指定寄存器的名字。
一般处理器寄存器很多种,每个占据2字节或者4字节。
3、操作数如果是数据栈,那么需要告诉数据栈的偏移量,也就是在字节序列的索引位置。
因为按照字节存放,有些数据占据4个字节,有的占据8个字节,需要指定开始读取的索引位置。
4、常量是编程时指定的。
通俗解释:操作数就是用来计算的数字,可能存在内存里等待临时确定,可能直接常数指定。
六、寄存器的注意事项
1、寄存器是处理器能直接读取和写入数据的存储设备。
2、寄存器是处理器和外部内存、外部存储设备(磁盘)交换数据的平台。
3、处理器用寄存器和外部设备通信,用总线来连接外部设备。
4、每当处理器需要数据,那么内存就把数据复制到寄存器,处理器从寄存器读取。
5、每当处理器输出数据,就把数据写入寄存器,内存就从寄存器读取数据。
通俗解释:寄存器就是处理器工作的平台,内存把数据放到平台上,等处理完后,内存再把数据从平台拿走。
七、用中断来调用外部功能
1、中断是处理器用来停止当前指令,保存当前状态,开始执行另一个程序的指令时作出的操作。
2、处理器需要和外部设备进行数据交换时调用中断程序。(例如磁盘读写,网络网卡读写,显示文字和图像,读取鼠标和键盘的输入)
3、BIOS提供了主板支持的中断程序,处理器只需要在寄存器设置中断程序的功能编号,然后调用该中断程序。
通俗解释:处理器想要外部数据了,就调用主板提供的中断程序。
八、显存的作用
显存是存放图像二进制数据的存储空间,是处理器直接输出图像信号的对象。
显示器从显存中读取图像数据来显示,同时用一定周期读取显存刷新图像。
通俗解释:处理器往显存里放图像的二进制数据,显示器就从显存里取数据显示。
九、数据栈和指令栈
1、汇编语言把指令和数据分开,分别放在指令栈和数据栈中。
2、指令执行时,按照地址增加的顺序读取指令,执行指令(因为指令连续存放)。
3、用指令计数器来保存当前执行的指令在指令栈的下标位置。
4、汇编语言把内存空间,显存空间连续排列,用地址来编号,每个字节一个地址,用整数递增。
5、数据栈也是一个连续存放的内存空间,每个空间有地址,方便用地址来读写数据。
按照变量类型来连续读几个字节(例如int整型连续读4个字节)。
通俗解释:把指令和数据分开,各自单独放一起,连续存放,像计数一样,加一个单位就获取一个指令,或者加一个单位就获取一个数据。