汇编语言入门经典(汇编语言入门一)
学习汇编语言以 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