Ahm*_*azy 0 assembly microprocessors systems-programming x86-16
可能重复:
NASM 16位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
Run Code Online (Sandbox Code Playgroud)
但我在这一行收到错误:
10B:MOV BL,[AX]
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么?
16位寻址模式包含可选的偏移量,可选的基址寄存器(bx,bp)和可选的索引寄存器(si,di).而已!"[ax]"不在列表中.32位寻址模式更灵活 - 任何通用寄存器都可以是基数,任何GPR,但esp可以是索引 - 并且"2","4"或"8"的"比例"可以乘以索引.已经学会了32位寻址模式的人很高兴忘记16位寻址模式......显然有些人有.:)
最好,弗兰克
| 归档时间: |
|
| 查看次数: |
3684 次 |
| 最近记录: |