汇编语言入门经典(汇编语言入门一)

学习汇编语言以 Intel 8086 CPU 为基础会更容易掌握,我来为大家科普一下关于汇编语言入门经典?下面希望有你要的答案,我们一起来看看吧!

汇编语言入门经典(汇编语言入门一)

汇编语言入门经典

学习汇编语言以 Intel 8086 CPU 为基础会更容易掌握。

要知道,微型计算机的字长与微处理器的寄存器位数有关。

  • 以 Intel 80X86 系列微处理器为例,CPU 是 8086/8088、80286 的字长是 16 位(二进制位 bit),那么它们的寄存器的位数一定是 16 位的;
  • 32 位字长的微机 CPU 是 80386/80486 或者 Pentium 系列,它们的寄存器的位数则是 32 位的。

学习汇编语言我们会用到十六进制(H)的数据形式,要使自己尽快习惯用十六进制来思维。在汇编语言中,数值后面分别用字母B、H、D代表二进制(Binary)、十六进制(Hexadecimal)、十进制数(Decimal)(十进制数可以省略 D)。

在计算机中还规定采用字节、字、双字等单位来表示数据。

  • 字节(Byte):8 位二进制数。如 00000101B 或表示成 05H;10000101B 或表示成 85H。
  • 字(Word):16 位二进制数,等于 2 字节。如 1100010111010110B 或表示成 C5D6H。
  • 双字(Double Word):32 位二进制数,又称为双精度数,等于 4 字节。如 23456789H。

在汇编语言中,内存是非常重要的学习内容。我们先要对内存地址和存储单元的概念进行学习。

对存储单元的标识可以用物理地址或逻辑地址表示。

(1)物理地址

物理地址是内存单元的真实地址,存储单元的物理地址是唯一的。

Intel 8086 CPU 有 20 根地址线,因此其存储空间可达 2 的 20 次方 = 1 M 个字节单元(1MB)。地址都是从 0 开始的,在 20 位地址线的存储空间中采用十六进制表示的物理地址范围是 00000H ~ FFFFFH。

(2)逻辑地址

逻辑地址是用户编程时使用的地址,分为段地址和偏移地址两部分。

在 8086 汇编语言中,把内存地址空间划分为若干逻辑段,每段由一些存储单元构成,每段最大为 65536 个字节单元(0 号单元~65535 号单元 0000H~FFFFH)。用段地址指出是哪一段,偏移地址标明是该段中的哪个单元。段地址和偏移地址都是 16 位二进制数。

逻辑地址的形式:段地址:偏移地址。

(3)逻辑地址转换为物理地址

用户编程时采用的逻辑地址在 CPU 执行程序时都要转换成实际的物理地址,这个转换过程是由 CPU 中的地址加法器自动完成的。

转换时先将 16 位的段地址左移 4 位,相当于乘以 16 或十六进制的 10H,再和偏移地址相加。转换公式为:

物理地址 = 段地址 × 10H 偏移地址

例:若某单元的逻辑地址为 0001:0002H,其物理地址 = 0001H × 10H 0002H = 00012H;另一单元的逻辑地址为 3020:055AH,其物理地址 = 3020H × 10H 055AH = 3075AH。

存储器逻辑分段类型如下:

  • 代码段:用于存放指令,段地址存放在段寄存器 CS。
  • 数据段:用于存放数据,段地址存放在段寄存器 DS。
  • 附加段:用于辅助存放数据,段地址存放在段寄存器 ES。
  • 堆栈段:是重要的数据结构,可用来保存数据、地址和系统参数,段地址存放在段寄存器 SS。

在 dos 操作系统和 Windows 操作系统中,都提供了调试工具 DEBUG。

DEBUG 是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为程序员提供了非常有效的调试手段。利用它可以观察和修改 CPU 的寄存器、内存单元;可以跟踪程序的运行,发现程序的错误。

DEBUG 命令有 20 多个,我们主要学习最常用的命令。

  • R ——查看和修改寄存器
  • D ——查看内存单元
  • E ——修改内存单元
  • U ——反汇编,将机器指令变为汇编指令
  • T / P ——单步执行
  • G ——连续执行程序
  • A ——输入汇编指令
  • Q ——退出

简单的 DOS 命令:

  • cd\ ——首先要用 cd\ 退回到根目录 C> 下
  • dir ——显示文件列表
  • md hb ——建立 hb 子目录
  • cd hb ——进入 hb 子目录
  • copy d:\dos\masm.exe c:\hb ——将 D 盘 dos 目录下的 masm.exe 拷贝到 C 盘 hb 目录下
  • copy d:\dos\link.exe c:\hb ——将 D 盘 dos 目录下的 link.exe 拷贝到 C 盘 hb 目录下
  • cd .. ——退回到上一级目录
  • del \hb\masm.exe ——删除 hb 子目录中的某文件
  • rd hb ——删除 hb 子目录(子目录中的所有文件必须先删除)
  • e: ——进入 e 盘
  • cls ——清屏
  • type ——显示文本文件内容(如 type c:\hb\abc.asm)

注意:DOS 和 DEBUG 命令都支持不区分大小写。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页