请问内嵌汇编中char的指针变量如何进行变址寻址?

有以下的代码
{ int n;
char *aa;
n=0;
aa= new char[10];
aa="1234567890";
_asm
{ mov bl,byte ptr aa[n] //我希望得到“1”,但aa[n]的用法
//实际上是在aa不是指针变量时存在的,当aa为执政变量时,我不知道该怎么办才能达到
//目的。
}
}
[239 byte] By [goby] at [2008-5-24]
# 1
int n;
char * aa;
n=0;
aa= new char[10];
aa="1234567890";
char b =aa[n];
_asm
{
mov bl,byte ptr b
}

caslwzgks-梦想家 at 2007-10-23 > top of Msdn China Tech,其他开发语言,汇编语言...
# 2
呵呵呵,我刚搞定这个问题,没想到也有人和我一样啊!!

#include <dos.h>
.....

asm push ds
asm push bl
_DS=FP_SEG(aa);
_BL=FP_OFF(aa);

asm{
mov al,byte ptr [bl]

}
asm pop bl
asm pop ds

一切搞定啦!
你自己去查一下dos.h中的FP_SEG()andFP_OFF()吧!
前时写一个引导程序时遇到这个问题,自己查资料搞定的!
这个在turbo C++下可以编译通过的,你试试吧!
yuqiang0304@sohu.com

y616-qiang at 2007-10-23 > top of Msdn China Tech,其他开发语言,汇编语言...