网站首页 > 资源文章 正文
学习汇编语言以 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 命令都支持不区分大小写。
猜你喜欢
- 2024-10-04 汇编语言真的没必要学了吗!(汇编语言值得学吗)
- 2024-10-04 Adobe各种软件问题解决汇编(adobe程序)
- 2024-10-04 最基础的逆向实战教程(最好的逆向教程)
- 2024-10-04 ida汇编逆向游戏脚本网络协议逆向插件海外脱机27
- 2024-10-04 X86 架构处理器汇编伪指令介绍(x86汇编指令集解析)
- 2024-10-04 玩一玩avr汇编,探究计算机的本质
- 2024-10-04 学习汇编语言有什么用?怎么才能学好?
- 2024-10-04 Windows11搭建汇编开发环境(汇编开发环境配置)
- 2024-10-04 管理必备:57页企业发展战略常用工具汇编(PPT完整版)
- 2024-10-04 大神赞过的:学习 WebAssembly 汇编语言程序设计
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)