|
主题 : : [原创]傻瓜式16位汇编编译连接调试程序 [待解决] |
回复[ 8次 ]
点击[ 643次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2010-01-19 08:08 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2007-12-08 14:22 |
辛苦了一晚上,终于完成了:)
下面为BAT代码,将代码复制到文本文件中,更名为DML.BAT后根据提示安装!
@echo off
title 16位汇编快速编译连接调试 当前日期:%date% 现在时间:%time%
color 0B
:START
cls
echo.
echo ≡≡ 欢迎使用 16位汇编快速编译连接调试 程序 ≡≡
echo.
echo ╭════════════════╮
echo ║ ║
echo ╭═════════┤ 作者:INRG ├════════╮
echo ║ ║ ║ ║
echo ║ ╰════════════════╯ ║
echo ║ ║
echo ║ [S] 安装 (注意:安装之前必须把编译和连接程序同本程序放在一个目录) ║
echo ║ ║
echo ║ [U] 卸载 ║
echo ║ ║
echo ║ 本程序使用masm5.0、link3.6在XP系统下测试通过,如有问题请与我联系。 ║
echo ║ ║
echo ║ E-Mail:inrg@163.com QQ:34153410 ║
echo ║ ║
echo ║ ╭══════════════════╮ ║
echo ║ ║ ║ ║
echo ╰════════┤ 版本: 1.0 ├═══════╯
echo ║ ║
echo ╰══════════════════╯
set /p chs=请输入你的选择:
if /i "%chs%"=="S" goto s
if /i "%chs%"=="U" goto s
goto START
:s
cd %SYSTEMROOT%
REM 卸载
if exist M16.exe del /q /f M16.exe 2>nul
if exist L16.exe del /q /f L16.exe 2>nul
if exist DML16.bat del /q /f DML16.bat 2>nul
reg query "HKLM\Software"|find "DML16" >nul || goto s3
reg query "HKLM\Software\DML16"|find "masmname" >nul || goto s1
for /f "tokens=3" %%a in ('reg query "HKLM\Software\DML16" /v "masmname"') do set masmname=%%a
:s1
reg query "HKLM\Software\DML16"|find "dbgname" >nul || goto s2
for /f "tokens=3" %%b in ('reg query "HKLM\Software\DML16" /v "dbgname"') do set dbgname=%%b
:s2
if /i "%masmname%" neq "" reg delete HKCR\Asmfiles\shell\%masmname% /f >nul
if /i "%dbgname%" neq "" reg delete HKCR\exefile\shell\%dbgname% /f >nul
reg delete "HKLM\Software\DML16" /f >nul
:s3
if /i "%chs%"=="U" (
echo 卸载成功!
pause
goto START
)
REM 安装
set /p chs0=请输入MASM程序的文件名称(如masm,不带扩展名):
set chs1=%chs0%.exe
if not exist %~sdp0%chs1% (
echo 错误提示:未找到%chs1%文件,请将该程序拷进%~dp0目录!
pause
goto START
)
set /p chs2=请输入LINK程序的文件名称(如link,不带扩展名):
set chs3=%chs2%.exe
if not exist %~sdp0%chs3% (
echo 错误提示:未找到%chs3%文件,请将该程序拷进%~dp0目录!
pause
goto START
)
set /p chs4=请输入编译连接ASM文件时的鼠标右键菜单名称(如ML16):
if %chs4% == "" goto START
set /p chs5=请输入调试16位EXE文件时的鼠标右键菜单名称(如DEBUG):
if %chs5% == "" goto START
copy /y %~sdp0%chs1% %SYSTEMROOT%\M16.exe >nul
copy /y %~sdp0%chs3% %SYSTEMROOT%\L16.exe >nul
reg add HKLM\Software\DML16 /v masmname /t REG_SZ /d %chs4% /f >nul
reg add HKLM\Software\DML16 /v dbgname /t REG_SZ /d %chs5% /f >nul
reg add HKCR\Asmfiles\shell\%chs4%\command /ve /d "DML16.bat ""%%1""" /f >nul
reg add HKCR\exefile\shell\%chs5%\command /ve /d "DML16.bat ""%%1""" /f >nul
echo @echo off>DML16.bat
echo if "%%~s1" == "" (>>DML16.bat
echo echo 未传入参数!>>DML16.bat
echo goto err0>>DML16.bat
echo )>>DML16.bat
echo if not exist %%~s1 (>>DML16.bat
echo echo 文件未找到!>>DML16.bat
echo goto err0>>DML16.bat
echo )>>DML16.bat
echo if /i %%~x1 equ .exe goto dbg>>DML16.bat
echo if /i %%~x1 equ .asm goto ml>>DML16.bat
echo echo 文件扩展名应为.exe或.asm!>>DML16.bat
echo :err0>>DML16.bat
echo pause>>DML16.bat
echo goto end>>DML16.bat
echo :dbg>>DML16.bat
echo debug %%~s1>>DML16.bat
echo goto end>>DML16.bat
echo :ml>>DML16.bat
echo cd %%~sdp1>>DML16.bat
echo M16.EXE %%~nx1,%%~n1.OBJ,NUL.LST,NUL.CRF ^> debugerr.txt>>DML16.bat
echo if %%errorlevel%% neq 0 (>>DML16.bat
echo cls>>DML16.bat
echo echo Compile Error:>>DML16.bat
echo for /f "skip=3 tokens=*" %%%%i in (debugerr.txt) do echo %%%%i>>DML16.bat
echo pause>>DML16.bat
echo goto del>>DML16.bat
echo )>>DML16.bat
echo L16.EXE %%~n1.obj,%%~n1.exe,NUL.MAP,, ^> linkerr.txt>>DML16.bat
echo if %%errorlevel%% neq 0 (>>DML16.bat
echo cls>>DML16.bat
echo echo Connection Error:>>DML16.bat
echo for /f "skip=3 tokens=*" %%%%i in (linkerr.txt) do echo %%%%i>>DML16.bat
echo pause>>DML16.bat
echo goto del>>DML16.bat
echo )>>DML16.bat
echo :del>>DML16.bat
echo del /q /f debugerr.txt ^>nul >>DML16.bat
echo del /q /f linkerr.txt ^>nul >>DML16.bat
echo del /q /f %%~n1.OBJ ^>nul >>DML16.bat
echo :end>>DML16.bat
echo 安装成功!
pause
goto START
:end | | |
|
|
|
|
[第1楼]
[ 回复时间:2010-01-19 11:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2010-01-13 10:56 |
|
|
|
|
|
[第2楼]
[ 回复时间:2010-01-19 15:35 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2007-12-08 14:22 |
|
|
|
|
|
[第3楼]
[ 回复时间:2010-01-19 19:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:2
信誉值:0
注册日期:2007-12-08 14:22 |
忘了补充 安装完后找到相应的ASM和EXE文件点击右键 有安装时自定义添加的菜单 一步编译连接 和 调试(DEBUG) 如编译连接有错误可提示错误信息 极方便 不必再用手敲masm、link等 我也正在学汇编 让我们一起进步 一起强 b | | |
|
|
|
|
[第4楼]
[ 回复时间:2010-01-19 19:50 ]
[引用]
[回复]
[ top ] | |
荣誉值:62
信誉值:0
注册日期:2009-12-03 13:14 |
|
|
|
|
|
[第5楼]
[ 回复时间:2010-01-20 23:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:61
信誉值:0
注册日期:2009-12-19 01:51 |
楼主的批处理的境界趋于炉火纯青登峰造极啦~~O(∩_∩)O哈哈~ | | |
|
|
|
|
[第6楼]
[ 回复时间:2010-01-30 10:33 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-12-30 17:03 |
|
|
|
|
|
[第7楼]
[ 回复时间:2010-03-17 11:18 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-02-27 19:14 |
|
|
|
|
|
[第8楼]
[ 回复时间:2010-04-11 02:11 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2010-04-09 01:21 |
|