Bt、先锋 发表于 2012-1-12 16:54:56

debug问题,求解救

我的电脑是w7 64位的,用的是论坛里小甲鱼的DOSBOX,但不知都为什么,每次键入 mov ax,这个指令时,就会提示E R R O R - - 09E7 Invalid register combination反正就是偏移地址不能为【0】,换成了是 mov ax, 又没问题了,不然换段内存或换个寄存器也是不行的,这到底是怎么回事啊,bug?有木有解决的办法?

事事如意 发表于 2012-1-12 16:54:57

AX那是DOS时代的寄存器,你的是64位的。在64位计划内算机中,AX只是作为一个索引值,学学WIN32编程就知道了。不过你得先学好汇编。
不知道我的回答是否正确。也希望各位高手给予指正。

——挥霍。? 发表于 2012-1-12 17:07:28

不应该啊 {:1_1:}{:1_1:}{:1_1:}

科学发展观 发表于 2012-1-12 17:09:45

换XP吧 轻车熟路

事事如意 发表于 2012-1-19 16:45:55

这位大侠,下次您再慷慨一点儿,就给二个鱼币。哈哈~~要多多益善呀!!

事事如意 发表于 2012-1-19 16:49:24

你再把 mov ax, 中的0放到一个寄存器里试试,比如mov bx,0    然后再 mov ax, 这样或许会更好一点儿

事事如意 发表于 2012-1-19 16:50:35

上面搞错了,对不起,我重新开始
先mov bx,0再mov ax,

事事如意 发表于 2012-1-19 17:00:05

注意的一点儿是mov ax,必须是在dos 系统里,因为只有在dos里,ax才是一个16位的寄存器,在Windows即win32 以上的系统里,ax 就失去了原来的功能,而是作为一个表等的索引,通过层层索引才能找到数据真正的地址。如果想要搞的更加明白,那你只能一步一个脚印了,在这里我告诉你一个密决::
先学“汇编”——再学“win32”,而这些知识,小甲鱼老师已经给我们做了非常生动的视频教程。
下载地址是www.fishc.com 进入鱼C工作室,然后进入“视频教程”板块,在那里有这些知识的全集下载,注意是免费的噢。小甲鱼老师不收钱的,也不收礼的,收钱只收广告费,所以没事儿的时候,大家跟我一样,进去随便点点。OK~~累死我了,这位大侠,您记得下次多给我点鱼币。多给多优惠呀~~

nichkhun 发表于 2012-1-22 18:47:30

   你不能直接的,把给mov到寄存器,给先mov ax,0 在进行下面的操作,
   比如   mov bx,
页: [1]
查看完整版本: debug问题,求解救