assembly - 8086 程序集中的寻址在模拟器中无法正常工作
问题描述
这是我写的代码
PUSH BP
MOV BP,SP
MOV AX,2
MOV [BP-8+AX*3],7
当我在 emu8086 中模拟它时,我可以看到以下内容
您可以看到应该计算为 2 的地址,但这里计算为 18h。我尝试更改 AX 的值,但仍保持为 18h。所以经过几次试验,我了解到它完全忽略了 AX 并且正在计算 8 * 3 = 24 = 18h。这个 [BP-8+AX*3] 是一个有效的指令。为什么会发生这种奇怪的事情?
解决方案
推荐阅读
- mongodb - 单个组的 Mongodb 查询限制
- php - 尽管设置了 max_execution_time,PHP 仍以 30 秒切割
- python - 从终端中正在进行的进程中读取命令行输出
- python - 重塑 Numpy 数组:“列表”对象不可调用
- compiler-construction - llvm IR 中的冗余基本块
- json - jasper 中的交叉表仅显示输入 json 中的第一列
- javascript - 参照父对象展平嵌套对象
- android - 任务':app:transformClassesWithDesugarForRelease'的离子执行失败
- c++ - 模板类的工厂方法
- android - 房间数据库和 Glide 插件之间的 Gradle 多模块 annotationProcessor 编译问题