- 主题:领悟了一个 DOS 超高级编程技巧
先用 debug 命令编写个函数。再把这个函数的字节码拿出来放到 qbasic 里面去。就可以使用各种 DOS 高级技巧了。
--
修改:hgoldfish FROM 112.51.42.*
FROM 112.51.42.*
qbasic 的 call absolute 的示例里面就有例子。
【 在 hgoldfish 的大作中提到: 】
: 先用 debug 命令编写个函数。再把这个函数的字节码拿出来放到 qbasic 里面去。就可以使用各种 DOS 高级技巧了。
--
FROM 112.51.42.*
不会。多写一些注释,或者直接把汇编代码写在那个函数的旁边就行了。
有些高级 DOS 调用,比如从 XMS 分配内存,qbasic 实现不了,就可以用前面说的配合 debug 写代码。
【 在 ooolinux 的大作中提到: 】
: 可读性很差
: --发自 ismth(丝滑版)
--
FROM 112.51.42.*
tc2 嵌入汇编我早会了啊。但那只是高级技巧,不是超高级技巧哈哈。
事实上,tc2 如果想嵌入汇编代码,也得 tasm 配合,此时,也可以考虑直接定义:
far char *asm_code = "\xff";
然后转成函数指针进行调用。这也是超高级技巧。
【 在 ooolinux 的大作中提到: 】
: 不如其它语言嵌入汇编代码
: --发自 ismth(丝滑版)
--
FROM 112.51.42.*
不能直接修改 basic 代码吧?
【 在 marxn 的大作中提到: 】
: qb程序还可以在运行时修改内存中的代码改变程序行为
--
FROM 112.51.42.*
好奇 debug 是怎么写这么大程序的。
可以写 8x8KB 以内的 com 程序。超过 8x8kb 的话它也没法存成 exe 啊。
【 在 BigCarrot 的大作中提到: 】
: 据说当年王江民用debug写了kv100
--
修改:hgoldfish FROM 121.207.53.*
FROM 121.207.53.*
你这么一说我才想起来,确实可以这样。。
只需要懂 6502 汇编就行了。
当年小霸王和 c64 的 basic 都有提供类似的功能的。什么 peek, poke,还有 bload, bsave 指令好像。
【 在 tom6bj 的大作中提到: 】
: 嗯, 我也是前几天在某群里和几个哥们聊起来才想到,当年在小霸王金字塔之类学习机上就可以用这办法执行自己的汇编程序了。
: 不过那会儿也确实没啥资料可以参考。。。
: 先用 debug 命令编写个函数。再把这个函数的字节码拿出来放到 qbasic 里面去。就可以使用各种 DOS 高级技巧了。
: ...................
--
修改:hgoldfish FROM 121.207.53.*
FROM 121.207.53.*
高端高端。还有这样啊。
这样兼容其它的编译器吗?
【 在 Su33 的大作中提到: 】
: TC2.0里面,我以前是用 __emit__() 直接嵌入机器码的,不需要函数调用
: 例如:
: __emit__(0x90);
: ...................
--
修改:hgoldfish FROM 117.28.128.*
FROM 117.28.128.*