汇编语言入门

2023-10-25 11:20:02 浏览数 (2)

1.1 汇编语言的一般概念(掌握)

计算机程序设计语言可分为机器语言,高级语言和汇编语言
1.机器语言
  • 计算机语言把控制计算机的命令和各种数据直接用二进制数码表示的一种程序设计语言 :::info 案例一:要实现将寄存器AH的内容与数10相加,结果再送回到寄存器AH中 用机器语言实现上述操作的代码:1011 0100 0000 1010==>十六进制表示B40AH ::: :::info 案例二:要让计算机完成4X6 40的算式运算.假设参与运算的数据事先分别存放到AL,BL和CL中,要求将运算结果存放到寄存器AL中 :::
  • 机器语言的优缺点
    • 优点
      • 最直接地表示了计算机内部的基本操作
      • 用它编制的程序在计算中运行的效率最高
      • 即运行速度最快,程序长度最短
    • 缺点
      • 用二进制数表示的内容及不便于记忆又难以阅读
2.高级语言
  • 高级语言将计算机内部的操作细节屏蔽起来,用户不需要知道计算机内部数据的传送和处理的细节,使用类似于自然语言的一些语句来编制程序,完成指定的任务。
  • 特点:程序设计简单,但程序效率较机器语言低。
3.汇编语言
(1) 定义
  • 为了便于记忆和阅读 ,使用字母和符号来表示机器语言的命令 ,用十进制数或六数来表示据 ,这样的计算机程序设语言就称为汇编语言 。
(2) 汇编语言与机器语言程序的关系
  • 一条汇编语言与一条机器语言指令对应,汇编语言程序与机器语言效率相同

案例:对于前述的4×6 40算式运算,如果把机器语言程序改写为汇编语言程序,则为以下两条汇编指令: 1111 0110 1110 0011 ==>MUL BL 0000 0000 1100 1000 ==>ADD AL,CL

(3) 不同类型计算机有不同的机器指令系统和汇编语言描述
  • 为了学习和使用某种计算机的汇编语言,必须熟悉计算机的内部组成结构。
  • 但并非要掌握计算机系统的全部硬件组成,只需掌握用汇编语言编制程序时所涉及到的那些硬件的结构和功能。
  • 对一台计算机来说,机器语言的执行主要取决于该计算机的中央处理器CPU。因此熟悉计算机内部结构主要是指CPU的功能结构。它包括:
    • CPU中有多少个寄存器及其作用?
    • CPU是如何访问存储器?
    • 输入输出操作的方式有哪些?

1.2 学习和使用汇编语言的目的(了解即可)

  • 1.学习和使用汇编语言可以从根本上认识、理解计算机的工作过程。
    • 更清楚地了解计算机是如何完成各种复杂的工作。
    • 在此基础上,程序设计人员能更充分地利用机器硬件的全部功能,发挥机器的长处。
  • 2.在计算机系统中,某些功能必须用汇编语言程序来实现。
    • 如:机器自检、系统初始化、实际的输入输出设备的操作等。
  • 3.汇编语言程序的效率高于高级语言程序
    • “效率”有两个方面的含义:程序的目标代码长度和运行的速度。
    • 在某些要求节省内存空间和提高程序运行速度的应用场合,如实时过程控制、智能仪器仪表等,常常用汇编语言来编制程序。

1.3进制计数制及其相互转换(掌握)

一. 进位计数制
  • 使用一定个数的数码的组合来表示数字,这种表示方法称为进位计数制。根据所使用的数码的个数,就产生了不同的进位计数制。
    • 如十进制数,用0、1~9十个数码的组合来表示数字。每个数码排在不同位置,所表示的数值大小不相同。
    • 例如:222从右边开始,第一个2表示2个1,第二个2表示有2个10,第三个2表示有2个100.
  • 将各个位置上所表示的基本数值称为位权,简称权。
    • 不同的进位制和不同的位置其位权是不同的。
    • 位权乘以对应位置上的数码就等于该数位上数值的大小。
  • 每个数位上能使用不同数码的个数称为基数。
    • 例如十进制有十个数码0~9,基数为10,二进制基数为2。
    • 每个数位能取的最大数码值=基数-1。如十进制为10-1=9
  • 在计算机中数据表示一般采用二进制数,
    • 因为它在计算机中最容易表示和存储,
    • 且适合于逻辑值的表达与运算。
  • 对人来说二进制不便于书写和阅读,因此书写时常使用8进制和16进制。
  • 二进制与8进制、16进制之间有非常简单的转换关系:
    • 3位二进制数与一位8进制数对应,
    • 4位二进制数与一位16进制数对应。
  • 在书写不同进位计数制数时,为了区别,常在数的尾部用一个字母来表示。
    • B(Binary)——二进制数
    • O(Octal)或Q ——八进制数
    • D (Decimal)——十进制数
    • H(Hexadecimal)——十六进制数。
    • 如未使用任何字母,则默认表示是十进制数。
    • 例如,10B,10Q,10D,10H
二.各种数制的相互转换
1.十进制整数转二进制数
(1) 减权定位法
  • ·从二进制数高位起,依次用待转换的十进制数与各位权值进行比较;
  • ·如够减,则该数位系数Ki=1,同时减去该位权值,余数作为下一次比较的值;
  • ·如不够减,则Ki=0。

(2) 除基取余法~这种转换方法同样适合于其它进制数之间的转换。

2. 十进制小数转换为二进制数
(1)减权定位法

(2)乘基取整法

3. 二进制整数转化为十进制数
(1)按权相加法

(2)逐次乘基相加法

4. 二进制小数转化为十进制数
(1) 按权相加法

(2) 逐次乘基相加法

5. 二进制与八进制和十六进制的转化

1.4 带符号数的表示(重点&难点)

  • 在一般算术表示中使用“ ”和“-”来表示正数与负数,而在计算机中使用“0”和“1”来表示正数和负数。
  • 用“ ”或“-”表示正负的数叫真值
  • 用“0”或“1”表示正负的数叫机器数
  • 带符号的机器数可以用原码、反码和补码三种不同码制来表示。
  • 一般计算机中大多采用补码表示。
一.原码表示
  • 二进制数的最高位表示符号,0表示正,1表示负。
  • 数值部分用二进制数绝对值表示
二.补码表示
1.补码的定义
  • 用补码表示的机器数,符号位仍然表示数的符号:
    • 0为正,1为负。
    • 对于正数,补码与原码相同,
    • 对于负数需要进行变换。
2.由真值、原码变换为补码
  • 对于正数:补码,反码和原码相同
  • 对于负数
    • 真值变换为补码:将各位变反(0变1,1变0)然后在最低位加1.
    • 原码变换为补码:保持符号位不变,其余各位变反,最低位加1。

3. 补码的表示范围
4. 补码的加减运算
(1) 加法运算X Y(重点理解运算过程)

:::info

:::

(2) 减法运算~(重点理解运算过程)

:::info

:::

1.5 字符的表示

  • |在计算机内部,各种字符(字母、符号、数字码)都是按一定的方式编写成二进制信息。
  • 不同的计算机以及不同的场合所采用的编码形式可能不同。
  • 目前最广泛采用的是ASCII码(American Standard Code for Information Interchange)
    • 标准ASCII码为一字节,其中用低七位表示字符编码(见附录A),用最高位表示奇偶数验位。
    • 标准ASCII码共有128个,可分为两类:
      • 非打印ASCII码,共33个,用于控制操作,如
        • BEL(响铃07H),
        • DEL(删除7FH),
        • CR(回车,0DH),
        • LF(换行,0AH).
      • 可打印ASCII码共有95个,如
        • 数字符0~9,大小写字母等。

1.6 基本逻辑运算

  • 计算机内部采用二进制数表示信息,具有物理实现容易、可靠性高的优点,且由于状态“0”和“1”正好与逻辑运算中的逻辑“真”和“假”对应,因此可以用“0”和“1”来表示逻辑变量的取值,很容易地实现各种复杂的逻辑运算。
  • 在计算机的指令系统中,一般都有逻辑运算指令。下面介绍几种常见的基本逻辑运算。
1."与"运算(AND)
2."或"运算(OR)
3."非"运算
4."异或"运算(XOR)
5.上述四种运算的真值表表示

0 人点赞