当前位置: 代码迷 >> 汇编语言 >> 汇编语言王爽著 第七章有关问题7.9 关于灵活寻址的疑问
  详细解决方案

汇编语言王爽著 第七章有关问题7.9 关于灵活寻址的疑问

热度:2819   发布时间:2013-02-26 00:00:00.0
汇编语言王爽著 第七章问题7.9 关于灵活寻址的疑问
assume cs:codesg,ss:stacksg,ds:datasg 

stacksg segment 
  dw 0,0,0,0,0,0,0,0 
stacksg ends 

datasg segment 
  db '1. display ' 
  db '2. brows ' 
  db '3. replace ' 
  db '4. modify ' 
datasg ends 

codesg segment 
start: mov ax,stacksg 
  mov ss,ax 
  mov sp,16 

  mov ax,datasg 
  mov ds,ax 

  mov bx,0 
  mov cx,4 
  s0: push cx 
  mov si,0 
  mov cx,4 
  s: mov al,[bx+si+3] ;改成[bx+3+si]就会报错,为什么??????????
  and al,11011111b 
  mov [bx+si+3],al 
  inc si 
  loop s 
  add bx,16 
  pop cx 
  loop s0 

  mov ax,4c00h 
  int 21h 
codesg ends 
end start 

报错: 
C:\myasm>ml q79.asm 
Microsoft (R) Macro Assembler Version 6.11 
Copyright (C) Microsoft Corp 1981-1993. All rights reserved. 

 Assembling: q79.asm 
q79.asm(27): error A2070: invalid instruction operands 
q79.asm(29): error A2070: invalid instruction operands

我用的是masm6.11

------解决方案--------------------------------------------------------
微软的汇编程序是搞怪。Masm5 可以直接通过;Masm6 和 Masm32 的加上 byte ptr 修饰也可以通过了。
  相关解决方案