汇编语言习题详解:地址分段、寻址方式与运算实例
版权申诉
78 浏览量
更新于2024-06-21
收藏 231KB PDF 举报
AX, [BX];
3
)直接寻址
:
MOV AX, [1000H];
4
)相对寻址
:
ADD AX, 1000H;
5
)基址变址寻址
:
MOV AX, [DI+100H];
6
)段基址寻址
:
MOV AX, DS:[BP+10H];
7
)间接寻址
:
MOV AX, [SI+DI*2];
其中,"数据有关的寻址方式"指的是处理数据时,指令根据数据的类型或存放位置进行寻址。例如,当需要读取或写入一个内存中的字符串时,可能使用基址变址寻址或段基址寻址,因为字符串通常在连续内存区域。
3. 为了在80x86微机的存储器中读取内容,我们首先要了解内存地址的结构。在给定的示例中,每个16位地址由高8位(段地址)和低8位(偏移地址)组成。对于30022H和30024H,由于它们都是偶地址,我们假设这是小端模式,所以:
30022H = (段地址 << 8) + 偏移地址 = (0x300 << 8) + 0x22 = 0x30022
30024H = (段地址 << 8) + 偏移地址 = 0x30024
而30021H和30022H虽然相邻,但没有直接给出偏移地址,因此无法直接计算内容。如果假设这两个地址是连续的,它们的内容应该是前一个地址内容的后两个字节,即:
30021H = 30022H - 1 = 0x30021
30022H = 0x30022
4. 根据提供的内存数据和指令,我们可以计算AX的内容:
1) MOV AX, 1200H: AX = 012H
2) MOV AX, BX: AX = 0100H
3) MOV AX, [1200H]: 需要知道1200H处的实际内容,这里假设为012H,AX = 012H
4) MOV AX, [BX]: AX = 0100H (因为BX = 0100H)
5) MOV AX, 1100[BX]: 首先解址1100H,实际地址为0100H + 1100H = 0200H,然后读取,假设内容为0001H,AX = 0001H
5. 补码运算及标志位设置:
1)01001001b + 10011101b:
结果:11010110b
SF:符号位,1表示负数,0表示正数;
CF:进位标志,1;
ZF:零标志,0,因为结果不为0;
OF:溢出标志,0,因为操作数无溢出;
结果有效。
2)01000001b - 10101011b:
结果:11101010b
SF:符号位,0,因为结果是正数;
CF:借位标志,1;
ZF:零标志,0,因为结果不为0;
OF:溢出标志,0,因为操作数无溢出;
结果有效。
6. 符号定义语句中,BUFFDB是一个字节数组,包含三个元素:1, 2, 和 '123'(ASCII值)。EBUFFDB是另一个字节数组,大小为0。LEQUEBUFF-BUFF表示EBUFFDB减去BUFFDB,由于EBUFFDB为空,所以:
L = 0 - 3(BUFFDB的最后一个元素的地址)= -3,因为减去一个负数相当于加上其相反数。
L的值为-3,这是相对于BUFFDB的偏移地址,因为EBUFFDB在BUFFDB之后,所以是负值。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-26 上传
2021-10-26 上传
2021-10-26 上传
2021-10-14 上传
2021-11-11 上传
142 浏览量
hhappy0123456789
- 粉丝: 74
- 资源: 5万+
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查