请问内嵌汇编中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]
呵呵呵,我刚搞定这个问题,没想到也有人和我一样啊!!
#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