(二)《汇编语言(王爽)》 | 检测点 2.1、2.2

本文详细解读了8086 CPU中通用寄存器的操作,通过示例展示了MOV和ADD指令对AX、BX、CX等寄存器的影响。同时介绍了寻址范围的计算方法,以及如何利用偏移地址寻址技术。涉及的关键概念包括16位寄存器、进位机制和20位地址空间的构造。
摘要由CSDN通过智能技术生成


1. 检测点 2.1

(1)写出每条汇编指令执行后相关寄存器中的值。

  • 8086CPU 的所有寄存器都是 16 位的,可以存放两个字节。 AX、BX、CX、DX 四个寄存器用来存放一般数据,被称为通用寄存器。通用寄存器都可以分为两个独立的 8 位寄存器来使用:如 AX 可分为 AH 和 AL,其他寄存器类。
  • 在进行数据传送或运算时,指令的两个操作对象的位数应当是一致的。如,针对 8 位的 AX 的低字节寄存器 AL 的运算溢出后不进位到 AH 中;针对 16 位时可以进位。
指令AXBXCX
mov ax,62627F4A3H--
mov ah,31H31A3H--
mov al,23H3123H--
add ax,ax6246H--
mov bx,826CH6246H826CH-
mov cx,ax6246H826CH6246H
mov ax,bx826CH826CH6246H
add ax,bx04D8H826CH6246H
mov al,bh0482H826CH6246H
mov ah,bl6C82H826CH6246H
add ah,ahD882H826CH6246H
add al,6D888H826CH6246H
add al,alD810H826CH6246H
mov ax,cx6246H826CH6246H
注:上述黑体部分中,低位的运算没有影响到高位。

(2)最多使用四条 mov、add 命令编程计算 2 的 4 次方。

mov ax,2
add ax,ax
add ax,ax
add ax,ax

2. 检测点 2.2

(1)给定段地址为 0001H,仅通过变化偏移地址寻址,CPU 的寻址范围为 00010H1000FH

  • 8086CPU 有 20 位地址总线,但其在内部一次性处理、传输、暂存的地址为 16 位。8086CPU 采用一种在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址,一个 16 位地址叫段地址、另一个叫偏移地址,合成公式是:段地址 × 16 + 偏移地址
  • 本题中,由于偏移地址是 16 位,即 0000H~0FFFFH,所以最终 CPU 的寻址范围为 0001H × 16 + 0000H ~ 0FFFFH。

(2)有一数据存在内存 20000H 单元中,现给定段地址为 SA,若想用偏移地址寻到此单元。则 SA 应满足的条件是:最小为 1001H,最大为 2000H

由公式 段地址 × 16 + 偏移地址,得到的区间 SA × 16 + (0000H~FFFFH) 应包括地址 20000H,将其分段后有 20000H >= SA × 16 + 0000H 并且 20000H <= SA × 16 + FFFFH。


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值