可能重复: NASM 16bit Intel
在微处理器课程中,我正在为简单微处理器编写汇编代码。我正在编写一个程序:求和六个元素,从地址300开始存储在内存中,但忽略80十六进制或以上(>=80h)或20十六进制或以下(<=20h)的元素。程序应该停止后,6比较,甚至数字被添加或没有。
这是我的密码:
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但我在这条线上收到了一个错误:
10B:MOV BL,[AX]有人知道为什么吗?
发布于 2012-09-28 22:01:45
16位寻址模式包含一个可选偏移量、一个可选基寄存器(bx、bp)和一个可选索引寄存器(si,di)。就这样!“斧子”不在名单上。32位的寻址方式更灵活--任何通用寄存器都可以作为基础,任何探地雷达( GPR )都可以作为索引,而esp可以是索引,而2、4或8的“比例尺”可以通过索引进行多重处理。学过32位寻址模式的人很高兴忘记16位寻址模式.显然有些人有。:)
最好,弗兰克
发布于 2012-09-28 20:16:43
嗯,我不确定,但我想您是在尝试将扩展(aX)寄存器的内容复制到另一个寄存器的低部分(bL)中。
下半部分大概只有扩展部分的一半.
https://stackoverflow.com/questions/12646765
复制相似问题