(asm 80286)在byte或word类型数组上访问数据段变量
我正在尝试访问变量的第n字节/字,但有些地方出错了,我不知道是什么原因。
ASSUME cs: code, ds:data
data SEGMENT
s db 5,1,2,3
data ENDS
code SEGMENT
start:
mov ax,data
mov es,ax
mov si, 0;
mov ax, 0;
check:
cmp si, len
jg fin
mov al, byte ptr [s][si] ; !!! this return not the value i i think it would
^^^^^^^^^^^^^^^
cmp al, 0
jl negativ ; move to positiv
jmp positiv ; move to negativ
positiv:
mov byte ptr d1[si],al
inc si
jmp check
negativ:
mov byte ptr d2[si],al
inc si
jmp check
fin:
mov ax,4C00h
int 21h
code ENDS
END startget to debug : tlink name,tlink name,td名称^行返回了错误的值,这就是为什么我假设我与调试器进行了检查,并且这些值来自数据段,而不是正确的值。
我想我可能不太理解寻址方法,有人能帮我吗?谢谢。
发布于 2014-11-22 11:36:57
你忘了初始化DS。
变化
mov ax,data
mov es,ax至
mov ax,data
mov ds,ax
mov es,axES的初始化真的需要吗?
https://stackoverflow.com/questions/27076654
复制相似问题