搜索
bottom↓
回复: 13

看到还有人喜欢汇编的安利一个上位机汇编程序开发

[复制链接]

出0入0汤圆

发表于 2019-10-12 15:33:08 | 显示全部楼层 |阅读模式
本帖最后由 CoolBird007 于 2019-10-12 19:51 编辑

没错,说的就是用汇编编写WINDOWS程序。
这里只作为一个最最最简单的例程,喜欢的可以买书去。

首先,从这里下载 MASM32V11。只有几兆。
http://www.masm32.com/download.htm

我是从下面两个连接下载的。
Australia 1
For programmers in Australia, China, South East Asia and the Pacific region.
下载网站从中国的程序员。

Australia 2
For programmers in Australia, China, South East Asia and the Pacific region.
下载网站从中国的程序员。

下载后解压,点install安装(注意提示,是要你点那个写着install图标)。。一路确定下去就行了。

完装完成之后,给程序添加环境变量,安装过JDK的就知道怎么添加了,不过。这里给一个批处理文件,在命令行模式下运行就行了。

var.bat内容如下,设置masm32环境变量。保存到 C:\WINDOWS\目录下。

@echo off
rem 请根据 Masm32 软件包的安装目录修改下面的 Masm32Dir 环境变量!
set Masm32Dir=C:\Masm32
set include=%Masm32Dir%\Include;%include%
set lib=%Masm32Dir%\lib;%lib%
set path=%Masm32Dir%\Bin;%Masm32Dir%;%PATH%
set Masm32Dir=
echo on

然后来编写第一个 helloword.


用记事本编写 hello.asm,当然你也可以用任何文本编辑软件,也可以使用MASM32包里的开发环境。

这是分隔线,没鸟用------------------------------------------------------------------------

                .386
                .model flat,stdcall
                option casemap:none
include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib
                .data

szCaption        db        '恭喜',0
szText                db        '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0

                .code
start:
                invoke        MessageBox,NULL,offset szText,offset szCaption,MB_OK
                invoke        ExitProcess,NULL
                end        start

这是分隔线,没鸟用------------------------------------------------------------------------

保存为 asm文件,记事本默认保存为TXT文件,所以,在保存文件名里输入"hello.asm",就是加上双引号就行了。

假设你保存到了C盘根目录,打开命令提示符(开始菜单-所有程序-附件-命令提示符)
运行之前的环境变量批处理文件。

c:\>var 回车
c:\>ml /c /coff hello.asm
c:\>Link /subsystem:windows hello.obj

编译之后就可以看到生成的 hello.exe,双击运行就可以看到效果了。

---------------------------------------------------------------------------------------------------

再来一个基本控制的例程,程序看附件。不能上传太多了,因为是买书附带的光盘。只是让大家看看其实跟用VC一样可以写出大型应用程序的。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入475汤圆

发表于 2019-10-12 16:02:18 来自手机 | 显示全部楼层
你写出来的一个程序才几十K不到1M也敢叫电脑软件?人家现在程序员动不动同样的功能线程序起码1个G!那才叫程序:)

出0入984汤圆

发表于 2019-10-12 16:06:39 | 显示全部楼层
本帖最后由 Himem 于 2019-10-12 16:11 编辑

以前写汇编课大作业用过masm32
masm的各种宏很好用,和高级语言差不多,
复杂运算可以用simd写成函数编译成obj,在高级语言调用编译时直接link

出330入1862汤圆

发表于 2019-10-12 16:07:45 | 显示全部楼层
有意思,喜欢这种东西

出0入442汤圆

发表于 2019-10-12 16:09:23 | 显示全部楼层
1a2b3c 发表于 2019-10-12 16:02
你写出来的一个程序才几十K不到1M也敢叫电脑软件?人家现在程序员动不动同样的功能线程序起码1个G!那才叫 ...

其实代码很少的,占地方的一是编译器生成的一些诊断信息,二是调试信息,三是导入导出信息,四是内嵌的一些model、bin数组文件等等。

出0入0汤圆

发表于 2019-10-12 17:03:24 | 显示全部楼层
好久没用汇编了

出0入0汤圆

发表于 2019-10-12 17:36:51 | 显示全部楼层
大学微机原理学过,用汇编做实验
控制IO口,读写数据,感觉跟写MCU程序也差不多,那时也会用单片机了

出0入0汤圆

发表于 2019-10-12 19:27:00 | 显示全部楼层
直接用debug写更好

出0入0汤圆

发表于 2019-10-12 21:16:19 | 显示全部楼层
汇编程序,支持一个

出0入0汤圆

发表于 2019-10-13 12:53:20 | 显示全部楼层
不好玩,程序大了一堆的第三方库,然后自己写汇编,看其他库都各种高级语言

出0入114汤圆

发表于 2019-10-13 14:06:27 来自手机 | 显示全部楼层
别人代替不了的,才是对自己有价值的程序

出10入12汤圆

发表于 2019-10-13 17:01:55 | 显示全部楼层
这挺高级的

出0入0汤圆

发表于 2019-10-14 17:53:01 | 显示全部楼层
调用的都是高级语言写的 最后

出0入0汤圆

发表于 2019-10-14 18:13:44 | 显示全部楼层
十多年前学过一下,其实就是用汇编语言调用Windows API。 看过罗云彬写的一本书,专门讲用汇编写 Windows 程序的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 15:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表