找回密码
 register

QQ登录

只需一步,快速开始

查看: 43|回复: 0

[汇编语言] [零基础入门学习]·01·基础知识·机器语言·汇编语言的的产生

[复制链接]

[汇编语言] [零基础入门学习]·01·基础知识·机器语言·汇编语言的的产生

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:91
  • 打卡月天数:14
  • 打卡总奖励:91
  • 最近打卡:2025-01-15 02:59:34
Waylee

主题

0

回帖

1万

积分

仙帝

积分
11890
Waylee 2024-12-19 13:18 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

第一章 基础知识

  汇编语言是直接在硬件之上工作的编程语言,我们首先要了解硬件系统的结构,才能有效地应用汇编语言对其编程。在本章中,我们对硬件系统结构的问题进行一部分的探讨,以使后续的课程可在一个好的基础上进行。当课程进行到需要补充新的基础知识(关于编程结构或其他的)的时候,再对相关的基础知识进行介绍和探讨。我们的原则是,以后用到的知识,以后再说。

1.1 机器语言

  说到汇编语言的产生,首先要讲一下机器语言。机器语言是机器指令的集合。机器指令展开来讲就是一台机器可以正确执行的命令。电子计算机的机器指令是一列二进制数字。计算机将之转换为一列高低电平,以使计算机的电子器件受到驱动,进行运算。

  上面所说的计算机指的是可以执行机器指令,进行运算的机器。这是早期计算机的概念。现在,在我们常用的PC机中,有一个芯片来进行上面所说的计算机的功能。这个芯片就是我们常说的CPU(Centeal Processing Unit,中央处理单元),CPU是一种微处理器。以后我们提到的计算机是指由CPU和其他受CPU直接或间接控制的芯片、器件、设备组成的计算机系统,比如我们最常见的PC机。

  每一种微处理器,由于硬件设计和内部结构的不同,就需要用不同的电平脉冲来控制,使他工作。所以每一种微处理器都有自己的机器指令集,也就是机器语言。

  早期的程序设计均使用机器语言。程序员们将用 0、1 数字编成的程序代码打在纸带或卡片上,1 打孔,0 不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。

  应用 8086CPU 完成运算 s=768+12288-1280,机器码如下?:

  100000000000000000000011
  000001010000000000110000
  001011010000000000000101

  假如将程序写错成以下这样,请你找出错误。

  101100000000000000000011
  000001010000000000110000
  000101101000000000000101

  书写和阅读机器码程序不是一件简单的工作,要记住所有抽象的二进制码。上面只是一个非常简单的小程序,就暴露了机器码的晦涩难懂和不易差错。写如此小的程序尚且如此,实际上一个有用的程序至少要有几十行机器码,那么,情况将怎么样呢?

  在显示器上输出“welcome to masm”,机器码如下:

  00011110
  101110000000000000000000
  01010000
  101110001100011000001111
  1000111011011000
  1011010000000110
  1011000000000000
  1011011100000111
  101110010000000000000000
  1011011000011000
  1011001001001111
  1100110100010000
  1011010000000010
  1011011100000000
  1011011000000000
  1011001000000000
  1100110100010000
  1011010000001001
  10001101000101100010101000000000
  1100110100100001
  1011010000001010
  10001101000101100011000100000000
  1100110100100001
  1011010000000110
  1011000000010100
  1011011100011001
  1011010100001011
  1011000100010011
  1011011000001101
  1011001000111100
  1100110100010000
  1011010000000010
  1011011100000000
  1011000000001100
  1011001000010100
  1100110100010000
  1011010000001001
  10001101000101100000000000000000
  1100110100100001
  11001011

  看到这样的程序,你有什么感想?如果程序里有一个“1”被误写为“0”,又如何去查找呢?

汇编语言的产生

  早期的程序员们很快就发现了使用机器语言带来的麻烦,它是如此难以辨别和记忆,给整个产业的发展带来了阻碍。于是汇编语言产生了。

  汇编语言的主题是汇编指令。汇编指令和机器指令的差别在于指令的表示方法上。汇编指令是机器指令便于记忆的书写格式。

  例如:机器指令 1000100111011000 表示把寄存器 BX 的内容送到 AX 中。汇编指令则写成 mov ax,bx。这样的写法与人类语言接近,便于阅读和记忆。

  操作:寄存器 BX 的内容送到 AX 中
  机器指令:1000100111011000
  汇编指令:mov ax,bx;

  (寄存器,简单地讲是 CPU 中可以储存数据的器件,一个CPU中有多少寄存器。AX是其中一个寄存器的代号,BX是另一个寄存器的代号。更详细的内容我们在以后的课程中会讲到,)

  此后,程序员们就用汇编指令编写源程序。可是,计算机能读懂的只有机器指令,那么如何让计算机执行程序员用汇编指令编写的程序呢?这时,就需要有一个能够将汇编指令转换成机器指令的翻译程序,这样的程序我们称其为编译器。程序员用汇编写出源程序,再用汇编编译器将其编译为机器码,由计算机最终执行。图1.1描述了这个工作过程。

图 1.1 用汇编语言编写程序的工作过程

图 1.1 用汇编语言编写程序的工作过程

图 1.1 用汇编语言编写程序的工作过程

您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-15 17:47 , Processed in 0.113717 second(s), 7 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表