+ -
当前位置:首页 → 问答吧 → 汇编语言王爽著 第七章问题7.9 关于灵活寻址的疑问

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

时间:2011-12-22

来源:互联网

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

作者: panxuxuyan   发布时间: 2011-12-22

奇怪,我怎么没有报错,我用的是masm5.1

作者: leetow2003   发布时间: 2011-12-22

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

作者: zara   发布时间: 2011-12-22