首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

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

2012-03-26 
汇编语言王爽著 第七章问题7.9 关于灵活寻址的疑问assume cs:codesg,ss:stacksg,ds:datasgstacksg segment

汇编语言王爽著 第七章问题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 修饰也可以通过了。

热点排行