【发布时间】:2018-03-23 20:22:45
【问题描述】:
我在 asm x8086 中编写了一个非常简单的代码,但遇到了一个错误。如果有人能帮我做一个简短的解释,我将不胜感激。
IDEAL
MODEL small
STACK 100h
DATASEG
; --------------------------
array db 10h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 04h, 04h
sum db 0
; --------------------------
CODESEG
start:
mov ax, @data
mov ds, ax
; --------------------------
xor cx, cx
mov al, 0
mov bx, offset array
StartLoop:
cmp cx, 10
jge EndLoop
add al, [bx]
add [sum],al
inc cx
inc bx
jmp StartLoop
EndLoop:
mov ah, 09h
int 21h
; --------------------------
exit:
mov ax, 4c00h
int 21h
END start
【问题讨论】:
-
注意这一行:add al, [bx] 实际上是 mov al, [bx]
-
我认为这里有一个简短的解释:stackoverflow.com/help/how-to-ask(目前尚不清楚您在问什么)另外,对于组装,它总是有助于指定您的目标平台/操作系统来运行代码,以及你使用什么汇编器来编译它(即使复制使用的命令行也不要犹豫,有时甚至可能有助于解决问题)。
-
我的意思是,很少有人会查看您的源代码,并且拥有相同的环境,因此他们可以复制/粘贴它,编译并实时查看您的问题。这里的大多数人将利用他们的知识和经验在他们的脑海中进行“试运行”,并且为了让他们更容易,您应该提供所有相关的细节(想象一下自己阅读您的问题时对您的设置外观的了解为零)。