在汇编语言中 为什么mov [si],dx运行得,而mov shu[bx],dx这个就运行不得呢
data segment
org 100h
SHU db 256 dup(?)
COUNT1 equ $-SHU
ELEMENT db 3 dup(?)
COUNT2 equ $-SHU
data ends
code segment
assume ds:data,cs:code
start: mov ax,data
mov ds,ax
mov es,ax
mov cx,COUNT1
mov dx,00h
mov bx,0
one: mov SHU[BX],dx
inc BX
inc dx
loop one
上面是有错误的
start: mov ax,data
mov ds,ax
mov es,ax
mov cx,COUNT1
mov dx,00h
mov SI,offset SHU
one: mov [SI],dx
inc SI
inc dx
loop one
这个是运行得的
答案:因为shu表示一个地址相当于c语言中数组名 即:数组首地址
那么mov shu[bx],dx就有问题了
可以改为mov (offset shu)[bx],dx
offset shu这个表示一个偏移量而不是 地址
其他:即:数组首地址
那么mov shu[bx],dx就有问题了
可以改为mov (offset shu)[bx],dx
offset shu这个表示一个偏移量而不是 地址
有的是一个立即数,,好好看看
上一个:汇编语言程序设计题目,在线等答案!!!急!
下一个:汇编语言程序设计题目,在线等答案!!!急!