当前位置: 代码迷 >> 汇编语言 >> 利用栈讲两段内存的数据导致,语法异常在哪
  详细解决方案

利用栈讲两段内存的数据导致,语法异常在哪

热度:238   发布时间:2016-05-02 04:37:37.0
利用栈讲两段内存的数据导致,语法错误在哪?
  本人有的编译器是masm的集成环境,而且是在虚拟机的win xp下运行的。老师根本什么都不讲,我自己摸索着的,根据书上写的代码,在masm上写上这么一段代码,编译时候老师是报错?
   
assume cs:codesg

codesg segment
mov ax,1000h
mov ds,ax
mov ax,2000h
mov ss,ax
mov sp,10h

push [0]
push [2]
push [4]
push [6]
push [8]
push [a]
push [c]
push [e]

mov ax,4c00h
int 21h

codesg ends 

end

------解决方案--------------------
	push ds:[00h]
push ds:[02h]
push ds:[04h]
push ds:[06h]
push ds:[08h]
push ds:[0ah]
push ds:[0ch]
push ds:[0eh]

------解决方案--------------------
二楼正解 masm不支持[idata]的寻址模式这是debug对地址的处理方式如果用立即数寻址需要在前面显式的给出段地址如ds;[idata]此外对于以字母开头的16进制数要在前面加上0且最后加上h表示这是一个16进制的数
  相关解决方案