首页
社区
课程
招聘
[原创]给和我一样在学汇编特别是《王爽汇编》的同志们一点小帮助
发表于: 2008-11-3 13:46 15618

[原创]给和我一样在学汇编特别是《王爽汇编》的同志们一点小帮助

2008-11-3 13:46
15618

看汇编没几天,整天抱着书看,去机器上写书上要求写的实验程序。可是汇编没有IDE(我没有找到)每次语法或者逻辑错误后 先要去该代码 然后又在控制台 masm一遍 link 一遍 debug一遍。
我比较笨一个程序要改好多次,不知道同志们有没有类型的经历。去控制台键入编译的命令真的很烦。就算有doskey记住后,然后箭头选,敲回车都烦。
也是我决定偷懒
首先我用的masm的版本是6.11 masm和link分别为C:\masm611\bin\masm.exe,C:\masm611\bin\link.exe
在bin目录下有个叫NEW-VARS.BAT的批 我把它名字改成 bc.bat(原来的名字太长了) 其作用是设置系统为asm的编译环境吧。英语不好,看不完全懂。
反正是把这个bat拿出来改动了下,主要是因为我不知道path命令的全部用法,我只知道添加我需要的路径。反正这bat的其他部分也基本无害。
改动后的版本如下:

@echo off
cls
SET PATH=C:\MASM611\BIN;c:masm611\bin\archer;c:\windows\system32\;%PATH%
SET LIB=C:\MASM611\LIB;%LIB%
SET INCLUDE=C:\MASM611\INCLUDE
SET INIT=C:\MASM611\INIT
SET HELPFILES=C:\MASM611\HELP\*.HLP
SET ASMEX=C:\MASM611\SAMPLES
SET TMP=C:\WINDOWS\TEMP
cls
masm %1
del *.bak
del c:\masm611\bin\archer\*.bak
if exist %1.obj call lr %1

添加了 编译器的路径 archer那个路径是我自己放代码的地方
其他set命令不是我写的 也不知道什么意思
后面先用 masm编译 你需要编译的源文件
如果没有生成obj的话也就是语法错误,就乖乖的直接回去改
如果生成了obj 调用另外的一个 lr.bat(我不知道怎么在批处理里面如何在if语句后面添加多条命令)并把参数传递过去

下面是 lr.bat的内容
@echo on
link %1.obj;
@echo off
del %1.obj
copy %1.asm c:\masm611\bin\archer\%1.asm
debug %1.exe

连接obj ,然后删除obj,将这次的asm放到我放代码的地方,然后开始开始用debug调试 这样如果是我们的逻辑错误后 我们不需手动去删除编译好了的obj和连接好的exe,唯一需要做的是重复用第一个bat就行了。

有几点需要说明的是
1.我是菜鸟 这些东西是我自己看着一本MS-DOS6.2写出来的。只是让和我一样的初学者少敲几次键盘,在程序出错的时候不因为不必要的时候弄糟了心情。
2.我用的xp系统,在开始菜单的运行里面键入cmd进入控制台后默认的目录是 C:\Documents and Settings\Administrator 所以如果你要用这两个bat的话,请自己把他们丢在这个目录里。并在这个目录里放入你需要编译的 XXXX.asm文件。剩下在控制台 用键入 bc XXXX就行了。 如果程序出错的话,改好了源文件,并保存后,直接在控制台窗口。上箭头+回车就把编译 连接 debug 所有的事情搞定(前提是你每次出错的时候不退出当前控制台,发现逻辑错误的话可以用-quit退出debug程序。反正意思就是让doskey记住 bc XXXX 能少按几下键盘就少按几下)
3.第一次在看雪发帖,有什么不对的多见谅,多包涵。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (14)
雪    币: 199
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jox
2
呵呵!楼主文章中的archer是我用了很久的网名了!
2008-11-4 22:10
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好吧 好吧 算我剽窃 呵呵
2008-11-7 23:50
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
王爽那个绝对是入门经典。我大一的时候经常去图书馆,也做批处理。
2008-11-8 02:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
王爽  确实写的很经典
从最简单的教起 只有用的上的才教 用不到的就放后面   完全不用死背
循序渐进 ------到了最后 8086 就全懂了
2008-11-14 03:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
现在我也在恶补汇编 不知道学哪本比较实用
2008-11-26 15:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
恩!我也去看看那本书先1
2008-12-31 15:24
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
大家可以去下个emu8086用,感觉比masm好用多了。
最主要是方便
2009-2-24 14:34
0
雪    币: 656
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
王爽? 有时间了还真的去多看看咯
2010-8-30 15:24
0
雪    币: 249
活跃值: (71)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
10
楼主不妨试试winmasm 2.2, 易用简洁,不要再用批处理这么麻烦了…CSDN上有…
2010-8-30 17:46
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
11
汇编怎么会没有IDE?
RadASM很好,很强大.
2010-8-30 17:55
0
雪    币: 1140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我觉得这个编译工具也不错,新手用足够了,免去了不少麻烦!
2010-9-1 08:34
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
有机会的话去看下这本书。
2010-9-3 00:15
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
@echo off
:start
masm 1
if errorlevel 1 1.asm &pause &goto start
link 1
del /s /q 1.obj
1

至于路径 没必要修改  发到桌面快捷方式就行
有错误时可以直接自动打开让你修改

@echo off
debug.exe 1.exe
2010-10-3 01:31
0
雪    币: 132
活跃值: (30)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
路过 看过 灌水
2010-10-24 03:12
0
游客
登录 | 注册 方可回帖
返回
//