中国DOS联盟论坛

中国DOS联盟
-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:bbs.cn-dos.net

DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

» 游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助

 

作者:
标题: [原创]批处理汇编助手 上一主题 | 下一主题
pcgg5244
新手上路





积分 3
发帖 3
注册 2009-6-23
状态 离线
『楼 主』:  [原创]批处理汇编助手

在记事本中写入关键字保存后拖到批处理上自动生成.ASM汇编代码,关键字和程序段可以自定义。

http://rthost.fam.cx/cndos-up/img/1563.rar

2009-6-24 06:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zzz19760225
超级版主





积分 3179
发帖 1753
注册 2016-2-2
状态 离线
『第 2 楼』:  

厉害了,我的锅!
下载内容的批处理内容:
CODE:  [Copy to clipboard]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-4 delims= " %%a in (%~fs1)do (set keyword=%%a
set par1=%%b
set par2=%%c
set par3=%%d
call :count
)
goto :eof

:count
if "!keyword!"=="comp" (
call :recomp
)else if "!keyword!"=="lmov" (
call :relmov
)else if "!keyword!"=="dlay" (
call :redlay
)else if "!keyword!"=="sort" (
call :resort
)else (
:other
echo         !keyword! !par1!>>%~dps0\tmp.asm
goto :eof  
)
goto :eof

:recomp
echo COMP:   MOV  R0,!par1!;比较大小 >>%~dps0\tmp.asm
echo         MOV  A,!par2! >>%~dps0\tmp.asm
echo         DJNE A,R0,LOOP1 >>%~dps0\tmp.asm
echo         SJMP LOOP4 >>%~dps0\tmp.asm
echo LOOP1:    JC LOOP2 >>%~dps0\tmp.asm
echo         SJMP LOOP3 >>%~dps0\tmp.asm
echo LOOP2:  ;这里加入小于处理  >>%~dps0\tmp.asm
echo.  >>%~dps0\tmp.asm
echo LOOP3: ;这里加入大于处理   >>%~dps0\tmp.asm
echo.  >>%~dps0\tmp.asm
echo LOOP4: ;这里加入等于处理   >>%~dps0\tmp.asm
echo.  >>%~dps0\tmp.asm
goto :eof  

:relmov
echo LMOV:   MOV R0,!par1! ;转移一段数据>>%~dps0\tmp.asm
echo         MOV R7,!par3! >>%~dps0\tmp.asm
echo         MOV DPTR,!par2! >>%~dps0\tmp.asm
echo LOOP4:  MOV A,@R0 >>%~dps0\tmp.asm
echo         MOV @DPTR,A >>%~dps0\tmp.asm
echo         INC R0 >>%~dps0\tmp.asm
echo         INC DPTR >>%~dps0\tmp.asm
echo         DJNZ R7,LOOP >>%~dps0\tmp.asm
echo         RET >>%~dps0\tmp.asm
goto :eof

:redlay
echo DELAY:  MOV R7,!par1! ;延时>>%~dps0\tmp.asm
echo DEL:    MOV R6,!par2! >>%~dps0\tmp.asm
echo DEL1:   DJNZ R6,DEL1 >>%~dps0\tmp.asm
echo         DJNZ R7,DEL >>%~dps0\tmp.asm
echo         RET >>%~dps0\tmp.asm
goto :eof

:resort
echo SORT:  MOV R2,!par2! ;排序数目>>%~dps0\tmp.asm
echo        MOV R3,!par2!>>%~dps0\tmp.asm
echo BUBBLE: CLR 7FH>>%~dps0\tmp.asm
echo        MOV A,R3>>%~dps0\tmp.asm
echo        MOV R2,A>>%~dps0\tmp.asm
echo        MOV R0,!par1!>>%~dps0\tmp.asm
echo BULOOP: MOV 20H,@R0>>%~dps0\tmp.asm
echo        MOV A,@R0>>%~dps0\tmp.asm
echo        INC R0>>%~dps0\tmp.asm
echo        MOV 21H,@R0>>%~dps0\tmp.asm
echo        CJNE A,21H,LOOP>>%~dps0\tmp.asm
echo        SETB C>>%~dps0\tmp.asm
echo LOOP:  JC BUNEXT>>%~dps0\tmp.asm
echo        MOV @R0,20H>>%~dps0\tmp.asm
echo        DEC R0>>%~dps0\tmp.asm
echo        MOV @R0,21H>>%~dps0\tmp.asm
echo        INC R0>>%~dps0\tmp.asm
echo        SETB 7FH>>%~dps0\tmp.asm
echo BUNEXT: DJNZ R2,BULOOP>>%~dps0\tmp.asm
echo        JNB 7FH,BUOK>>%~dps0\tmp.asm
echo        DJNZ R3,BUBBLE>>%~dps0\tmp.asm
echo BUOK:  SJMP $>>%~dps0\tmp.asm
echo        RET>>%~dps0\tmp.asm
goto :eof
[ Last edited by zzz19760225 on 2017-11-21 at 17:37 ]



1<词>,2[句],3/段\,4{节},5(章)。
2017-11-21 17:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转:  



[ 联系我们 - 中国DOS联盟 ]


Powered by Discuz! © 2001-2011