如何在win10 64位下搭载汇编环境

如何在win10 64位下搭载汇编环境,第1张

先声明一下,下面这个MASM 6.11安装配置方法是为从实模式入门的初学者推荐的,本人亲自试验,屡试不爽。别嫌它长,其实并不难。不用说64位Windows,只要是DOSBox支持的 *** 作系统,甚至OS X上都可以用这个办法。执意从保护模式甚至x64开始入门汇编的麻烦绕道,更不要跑到我评论区里来,对初学者来说从实模式入门自有其好处。对于Win32汇编我只知道VS装好以后命令行工具里有个ml.exe,其他的我暂时一概不懂,所以没什么可推荐的。

安装DOSBox。

新建一个文件夹作为模拟DOS环境的C分区,这里假定为C:\Users\X\Documents\DOSBOX。

去MSDN I Tell You下载MASM 6.11,双击自解压,然后将其中几个名为DISK?(?是数字)的文件夹合并到一起,放在某个地方备用,假定为C:\Users\X\Downloads\MASM\DISKS。

在开始菜单里打开DOSBox-0.74\Options\DOSBox 0.74 Options,在末尾加上

MOUNT A C:\USERS\X\DOWNLOADS\MASM\DISKSMOUNT C C:\USERS\X\DOCUMENTS\DOSBOX

这两行。

启动DOSBox,执行

A:

SETUP

,开始安装MASM 6.11。安装时选择“MS-DOS/Microsoft Windows”,除了Brief Capability以外其他的组件都装上,其他选项保持默认值即可。

安装完后将DOSBOX\MASM611\BIN下的NEW-VARS.BAT拷贝到DOSBOX目录下来,打开前面提到的DOSBox 0.74 Options,将“MOUNT A ...”一行去掉。至此安装和配置过程已结束。

以后每次使用时启动DOSBox,先执行

C:NEW-VARS

,再切换到ASM文件所在的目录,就可以使用MASM或LINK命令了。然后即可在DOSBox里运行(如果是32位Windows可以直接运行或DEBUG)生成的程序。如果想一步就生成可执行文件,可以用ML。另外强力推荐DOSBox Debugger,功能比Windows自带的DEBUG强几百倍,可以同时观察寄存器、内存和指令,设置断点等等。DOSBox的官方论坛上可以下载,放到DOSBox的安装目录下即可。启动后执行HELP可查看其用法。

用DOS的EDIT可以写源代码,然后保存,汇编,连接,即可生成汇编程序. 具体方法是: 进入DOS,输入EDIT,FILE,NEW,编辑汇编源代码,然后保存(注意扩展名为 .asm),在通过MASM或者TASM即可生成目标文件(.obj),再通过LINK即可生成可执行文件(.exe).

C51与汇编语言混合编程(1).C51语言中调用汇编语言程序1、在文件中选中FILEGROUP和C51程序原文件,在配置文件选项中激活“i”产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含“三个选项。2、根据选择的编译模式,把相应的库文件(如SMALL模式,库文件为KEIL\C51\LIB\C51S.LIB)加入到工程中。3、在C51语言中必须声明需要调用的函数为外部函数。externvoidDELAY(void)4、在汇编语言程序中必须声明被调用子程序为公共子程序,在被调用的文件中还需要声明此文件是新定位的。PUBLICDELAY,DELDELAYYSEGMENTCODERSEGAELAYY实例如下:#include"reg51.h"externvoidDELAY(void)externvoidDEL(void)voidmain(void){P1=0x00DELAY()DEL()P!=0xff}汇编语言文件:PUBLICDELAY,DELDELAYYSEGMENTCODERSEGAELAYYDELAY:MOVR2,#3HDJNZR2,$RETDEL:MOVR3,#3HDJNZR3,$RETEND(2)、C51语言中嵌入汇编程序:在C51语言中嵌套使用汇编语言程序要注意以下几个问题:1、在文件中选中FILEGROUP和C51程序原文件,在配置文件选项中激活“i”产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含“三个选项。2、根据选择的编译模式,把相应的库文件(如SMALL模式,库文件为KEIL\C51\LIB\C51S.LIB)加入到工程中。3、用#pragmaasm.和#pragmaendasm语句包含嵌入的汇编语言程序。实例如下:#include"reg51.h"voiddelay(void)voidmain(void){voiddelay(void)P1=0x00#pragmaasmMOVR3,#08HDINZR3,$#pragmaendasmP1=0xff}voiddelay(void){#pragmaasmMOVR4,#08HDJNZR4,$#pragmaendasm}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/8005478.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存