首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MOV,[AX]误差

MOV,[AX]误差
EN

Stack Overflow用户
提问于 2012-09-28 20:11:47
回答 2查看 4.7K关注 0票数 0

可能重复: NASM 16bit Intel

在微处理器课程中,我正在为简单微处理器编写汇编代码。我正在编写一个程序:求和六个元素,从地址300开始存储在内存中,但忽略80十六进制或以上(>=80h)或20十六进制或以下(<=20h)的元素。程序应该停止后,6比较,甚至数字被添加或没有。

这是我的密码:

代码语言:javascript
复制
    E 300 30 40 50 60 70 75
    A 100
100:MOV AX,2FF
103:ADD AX,1
106:CMP AX,306
109:JAE 11C
10B:MOV BL,[AX]
10E:CMP BL,20
111:JBE 103
113:CMP BL,80
116:JAE 103
118:ADD CL,BL
11A:JMP 103
11C:INT3

但我在这条线上收到了一个错误:

代码语言:javascript
复制
10B:MOV BL,[AX]

有人知道为什么吗?

EN

回答 2

Stack Overflow用户

发布于 2012-09-28 22:01:45

16位寻址模式包含一个可选偏移量、一个可选基寄存器(bx、bp)和一个可选索引寄存器(si,di)。就这样!“斧子”不在名单上。32位的寻址方式更灵活--任何通用寄存器都可以作为基础,任何探地雷达( GPR )都可以作为索引,而esp可以是索引,而2、4或8的“比例尺”可以通过索引进行多重处理。学过32位寻址模式的人很高兴忘记16位寻址模式.显然有些人有。:)

最好,弗兰克

票数 5
EN

Stack Overflow用户

发布于 2012-09-28 20:16:43

嗯,我不确定,但我想您是在尝试将扩展(aX)寄存器的内容复制到另一个寄存器的低部分(bL)中。

下半部分大概只有扩展部分的一半.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12646765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档