中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 06:34
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [原创]批处理版汇编语言开发工具
可打印版本  15,116 / 46
第1楼 netbenton 发表于 2009-04-01 12:38
银牌会员 发帖 752 积分 1,916 来自 广西
[原创]批处理版汇编语言开发工具
这是一个完全批处理程序。

一、它的功能是,对为它写的汇编语言源程序进行编译生成可执行exe/com文件


而这种源程序支持以下描述:

一),用8088汇编语言指令系统

二),用DB/DW定义数据,并支持重复定义

三),用SET进行变量设置,如同BAT一样使用。

四),支持宏定义,宏扩展,宏嵌套扩展,并支持参数使用

五),支持子过程定义及调用

六),支持重复宏编程,

七),支持if else endif条件宏编程,可多层嵌套。

八),inc宏定义库文件调用

九),数据文件直接嵌入目标程序

十),特色#为头的标号,可作数据可作地址,主程序,宏(多层嵌套),子过程,if宏(多层嵌套)等
之间的标号自然独立,并又可相互引用,

十一),以分号;为注释,可独立一行或在行后

十二),EXE程序的段定义方法简单,




二、不需要系统命令外的任何三方工具,

三、程序指令有错误时,直观报错,方便调试

四、了解8088指令系统后,简单学习本工具编程方法便可以使用该工具

五、程序开源,修改方便,可根据个人需要进行修改扩展,

============================
2009.8.1 更新为: 版本2.0.2
小提速了一下,增强了示例源码

============================
2010.9.25 更新为: 版本2.3.0
1,增加:子过程可以使用参数,并且增加了“invoke” 伪指令,用于带参数调用子过程
2,增加:子过程可以使用局部变量,这样可以轻松的把常用子过程,做成黑箱代码,方便编译和移殖。
3,增加:数据结构定义和使用,并且可用于子过程的局部变量定义中
4,改进了:10进制转16进制的算法,得以小提速
5,增加:自动对较大的源码进行重复调整地址,这样复杂一点的汇编程序也可以用batasm来开发了。
6,增加多行汇编语句连写功能,if else endif 连写功能
7,增加case功能,与else 区别:case的分支只执行一个,而else 则是所有条件成立的。
8,增加使用if@ else@ case@来解决分支过长时的短跳限制问题。

[ Last edited by netbenton on 2010-9-24 at 07:58 ]

附件
batasm2.0.2.rar (20.92 KiB)
batasm2.3.rar (23.55 KiB)
第2楼 princezhou 发表于 2009-04-01 13:54
新手上路 发帖 2 积分 3
谢谢分享,太好了!很牛!
第3楼 wja2030 发表于 2009-04-02 06:00
新手上路 发帖 1 积分 1
谢谢分享,
第4楼 070 发表于 2009-04-03 08:23
高级用户 发帖 218 积分 663 来自 福建
没有想到批处理如此强大!
第5楼 yishanju 发表于 2009-04-03 08:30
银牌会员 发帖 1,357 积分 1,488
这楼上的简直是史前恐龙,2003年注册的
居然还有存活
第6楼 764873221 发表于 2009-04-03 10:56
新手上路 发帖 3 积分 3
好啊
谢谢分享,太好了!很牛!
第7楼 DJ131452DJ 发表于 2009-04-05 16:19
初级用户 发帖 44 积分 50
谢谢分享,
第8楼 hugreen 发表于 2009-04-06 06:09
初级用户 发帖 15 积分 23
好东西,收下了,谢谢分享
正想重新学学汇编
第9楼 netbenton 发表于 2009-04-10 01:01
银牌会员 发帖 752 积分 1,916 来自 广西
看来玩批处理又同时玩汇编的人不多。

本想得到一点意见,然后再完善完善的,都沉到看不见了,花了那么多时间搞的,不甘心就这么消失了。

这可是能促进批处理和汇编的“关系”的东西哦,一个从BAT进入ASM的小小"管道",可以让玩批处理的人也玩玩汇编。

再顶起来看看能否遇到感兴趣的。。。
第10楼 s11ss 发表于 2009-04-10 01:26
银牌会员 发帖 566 积分 2,098
用debug玩……
第11楼 yishanju 发表于 2009-04-10 03:48
银牌会员 发帖 1,357 积分 1,488
不知道学汇编的入门在哪里
要哪看哪些书,用哪些工具。。完全不知道。
要不然肯定有兴趣学一学
第12楼 s11ss 发表于 2009-04-10 05:57
银牌会员 发帖 566 积分 2,098
Originally posted by yishanju at 2009-4-10 03:48 AM:
不知道学汇编的入门在哪里
要哪看哪些书,用哪些工具。。完全不知道。
要不然肯定有兴趣学一学



王爽和罗云彬的书
第13楼 uchina 发表于 2009-04-10 23:14
新手上路 发帖 5 积分 8
恩,是好东西啊,谢谢分享
第14楼 netbenton 发表于 2009-04-12 02:18
银牌会员 发帖 752 积分 1,916 来自 广西
对!
batasm.bat 主要是靠debug来完成,

但是,debug 能支持标号定义,并调用吗?如call 标号
不能,debug 只支持call 1023绝对地址调用

debug可以接收汇编指令的输入,但是顺序一条一条的输入,如果中间有修改,则全部都要修改。


batasm.bat 可以让debug编程差不多像masm一样,并且有些地方更方便,如:
在源码可以这样定义:db "%date%" "%time%"
把实时的系统日期和时间定义到程序中。

batasm.bat 还带有这样一个功能,可以把代码生成16进制数据,在批处理中调用debug来还原为可执行程序。还可以固化为宏代码。

[ Last edited by netbenton on 2009-4-12 at 00:21 ]
第15楼 netbenton 发表于 2009-04-15 01:12
银牌会员 发帖 752 积分 1,916 来自 广西
再顶一次,我感觉应该还可以忧化的,想所速度提上去,只是自己能力有限,不知道怎么搞了,真希望哪位高人能提点一下。

耐心的等。。。
1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023