在一个论坛看见这条问题:-
在masm里面可以写
and al,11000101b 或 mov ax,1234d
在debug模式的-a状态下,如何输入2进制(以b结尾)或10进制(以d结尾)的数字?
标准的回答是:debug不支持!
恩,或许是有的,但就我所见几款debug都不支持b(2进制)或者d(10进制)的后缀。
有没有办法令debug支持呢?
若有debug源码,这是有可能的。我有一份某位外国大牛写的debug源码,基本上没瞄过,看看上千万行的代码就却步了。
想了一下,不修改源码仍然可以实作吧。终于花了1天,写了一个小程式,它先载入debug.com或debug.exe
然后在背后等待,只要使用者输入
-a
mov ax,12345d (任意) 或
mov bx,1001001011111101b (任意)
然后按一下F10键,原值会立即转成16进制值。
若没有b或d的后缀,或者输入的不是合法的10进制或2进制值,按了F10也不会鸟它。
就这样,比如:

按f10后

比如:

按f10后

另一个例子
h 1234d [按10] 变了 h 4d2 后 h 4d2 345d [按10] 变 h 04D2 0159 [按回车]得062B 0379
这样相等于10进制的 1234和345相加相减的16进制结果
还有,以h为后缀的功能,使用方法,例如:
mov ax, 2000 输入后,却想知道2000这16进制10制是多少,加多一个h
mov ax, 2000h [按f10] ,变成 mov ax,8192D,D表示10进制,换算后再按一下f10,
因有D的后缀,变回mov ax, 2000
一如上面的例子,任何合法的数字符串均可转换,如
push word ptr abcdh
mov dword ptr [di], 1234FFFFh
dbug还有载入执行档功能,
只键入dbug,它先载入debug.com或debug.exe
若键入dbug xxxx.exe,它会载入xxxx.exe并躲进后台
用法:
Bbug [执行档名] [参数(如有)]
例如:bdug edit.com test.asm
载入 edit.com(dos编辑程式)并以test.asm为参数,edit.com会认为test.asm是本身的参数。
在 [载入程式] 中,可用f10作进制转换,用法和debug一样

按f10后,10000d,变成2710

代码少于700行代码,不算很长,大家可以先想想原则,晚些我会发代码和说说做法。
先上载程式,在回覆.
在masm里面可以写
and al,11000101b 或 mov ax,1234d
在debug模式的-a状态下,如何输入2进制(以b结尾)或10进制(以d结尾)的数字?
标准的回答是:debug不支持!
恩,或许是有的,但就我所见几款debug都不支持b(2进制)或者d(10进制)的后缀。
有没有办法令debug支持呢?
若有debug源码,这是有可能的。我有一份某位外国大牛写的debug源码,基本上没瞄过,看看上千万行的代码就却步了。
想了一下,不修改源码仍然可以实作吧。终于花了1天,写了一个小程式,它先载入debug.com或debug.exe
然后在背后等待,只要使用者输入
-a
mov ax,12345d (任意) 或
mov bx,1001001011111101b (任意)
然后按一下F10键,原值会立即转成16进制值。
若没有b或d的后缀,或者输入的不是合法的10进制或2进制值,按了F10也不会鸟它。
就这样,比如:

按f10后

比如:

按f10后

另一个例子
h 1234d [按10] 变了 h 4d2 后 h 4d2 345d [按10] 变 h 04D2 0159 [按回车]得062B 0379
这样相等于10进制的 1234和345相加相减的16进制结果
还有,以h为后缀的功能,使用方法,例如:
mov ax, 2000 输入后,却想知道2000这16进制10制是多少,加多一个h
mov ax, 2000h [按f10] ,变成 mov ax,8192D,D表示10进制,换算后再按一下f10,
因有D的后缀,变回mov ax, 2000
一如上面的例子,任何合法的数字符串均可转换,如
push word ptr abcdh
mov dword ptr [di], 1234FFFFh
dbug还有载入执行档功能,
只键入dbug,它先载入debug.com或debug.exe
若键入dbug xxxx.exe,它会载入xxxx.exe并躲进后台
用法:
Bbug [执行档名] [参数(如有)]
例如:bdug edit.com test.asm
载入 edit.com(dos编辑程式)并以test.asm为参数,edit.com会认为test.asm是本身的参数。
在 [载入程式] 中,可用f10作进制转换,用法和debug一样

按f10后,10000d,变成2710

代码少于700行代码,不算很长,大家可以先想想原则,晚些我会发代码和说说做法。
先上载程式,在回覆.