中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-15 21:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]批处理汇编助手 查看 3,000 回复 1
楼 主 [原创]批处理汇编助手 发表于 2009-06-24 06:50 ·  中国 湖南 湘潭 电信
新手上路
积分 3
发帖 3
注册 2009-06-23 14:17
UID 147988
性别 男
状态 离线
在记事本中写入关键字保存后拖到批处理上自动生成.ASM汇编代码,关键字和程序段可以自定义。

http://upload.cn-dos.net/img/1563.rar
2 发表于 2017-11-21 17:35 ·  中国 海南 海口 电信
超级版主
★★★★
积分 3,673
发帖 2,020
注册 2016-02-01 00:00
UID 181465
性别 男
状态 离线
厉害了,我的锅!
下载内容的批处理内容:



@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(章)。
论坛跳转: