VC怎么嵌入ASM汇编程序

VC怎么嵌入ASM汇编程序,第1张

控制台:清屏, 光标定位 gotoxy,不用汇编的

#include <windowsh>

#include <stdioh>

#include <stringh>

void Cls(HANDLE hConsole);

int main()

{

DWORD state = 0, res;

COORD pos = {0, 0};

HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);

Cls(hOut);

posX = 5; posY = 5;

SetConsoleCursorPosition(hOut, pos); / 设置光标位置 /

printf("position: 5, 5\n");

CloseHandle(hOut);

}

void Cls(HANDLE hConsole)

{

COORD coordScreen = {0, 0};

BOOL bSuccess;

DWORD cCharsWritten;

CONSOLE_SCREEN_BUFFER_INFO csbi;

DWORD dwConSize;

bSuccess = GetConsoleScreenBufferInfo(hConsole, &csbi);

dwConSize = csbidwSizeX csbidwSizeY;

bSuccess = FillConsoleOutputCharacter(hConsole, (TCHAR) ' ', dwConSize, coordScreen, &cCharsWritten);

bSuccess = GetConsoleScreenBufferInfo(hConsole, &csbi);

bSuccess = FillConsoleOutputAttribute(hConsole, csbiwAttributes, dwConSize, coordScreen, &cCharsWritten);

bSuccess = SetConsoleCursorPosition(hConsole, coordScreen);

}

主程序调用写在其他asm中的子过程的方法

主程序文件名 mainasm

子过程文件名 subasm

子过程名 fun1

方法有:

1:

(1)在mainasm 文件中 在call fun1 之前的任意位置,(即使在data中也可以) include subasm

(2)在 subasm的子过程之前可以使用 code和data 也可以不加

列如:

data

n1 DWORD 2

code

fun1 PROC NEAR32

add eax ,n1

ret

fun1 ENDP

或者:

fun1 PROC NEAR32

add eax ,eax

ret

fun1 ENDP

(3)直接编译mainasm,连接mainobj 即可

注: subasm 最后一定不能有END

2:(1)在mainasm 文件中 的data 之前 EXTRN fun1:NEAR32 ,也可以用 fun1 PROTO NEAR32 声明函数

(2)在subasm 的fun1 PROC NEAR32之前,或者fun1 ENDP 之后 PUBLIC fun1

subasm 末尾需要 END

例如:

386

MODEL FLAT

PUBLIC fun1

data

n1 dword 2

code

fun1 PROC NEAR32

add eax ,n1

ret

fun1 ENDP

end

(3)分别编译mainasm,subasm。连接连接mainobj和subobj

总结,若是其他asm文件中的是宏,则在主文件,或者子过程文件中 直接 include 宏nameasm 即可

若是这些工作做得没有差错,编译或者连接时出现差错,则最大可能性是:你的子过程名写错了,解决的办法是

把所有出现子过程名的地方重新复制粘贴一遍。

MASM是Microsoft

Macro

Assembler

的缩写,是微软公司为x86

微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器。

使用方法:

如果你的电脑是X86,那么没有太多限制,直接网上现下载masm50,并将所有文件解压到非C盘中某一个文件夹之内(编写的asm文件也放在这里面)在运行中使用cmd命令,进入你文件所在目录,如我的文件在D:\masm中,键入d:\masm便可进入该文件夹

。使用masm

asm

命令生成obj文件,link

obj链接生成exe文件

然后

就可以执行了,同样也是确保在文件目录下,使用

exe命令,还有就是debug的方法,使用方法类似

debug

exe

如果你的电脑不是X86而是x64,那么就需要使用DOSBox工具。安装完成后,打开软件

会出现两个界面,在可运行界面会让你先挂载你的目录

。输入你的文件所在目录便可以,例如

mount

d

d:masm

“d”作为虚拟d盘

"d:masm"你要虚拟的文件夹位置。然后就可按着x86的方法 *** 作了。很多具体的DOSBox的使用方法,请自行学习,如果一般用于汇编卡法的话,挂载也可以写到DOSBox的option文件中,方便自己使用

首先需要编译程序masmexe和连接程序linkexe,把他们放到C盘masm文件夹。

点击开始,运行,输入cmd。进入c\masm。

输入cd c:\masm即可。

然后masm 文件名asm

没错的话,再link 文件名

没错的话就会生成exe文件。

直接输入文件名exe即可。

楼主提供的几个名词和电子设计都有关联。

protel是制作pcb板(很多电子产品里都有,就是那种墨绿色的硬质板)的工具,常用的版本有se99和dxp;

流程图可以认为是程序的简图,体现程序的大概思路和算法;

asm是汇编语言程序的扩展名。

制作好pcb板,完成焊接,再将程序拷进单片机,一个电子产品就初步完成了。

言语有诸多不规范之处,大意如此。

以上就是关于VC怎么嵌入ASM汇编程序全部的内容,包括:VC怎么嵌入ASM汇编程序、汇编 调用外部子过程的ASM文件、如何使用Visual Studio编程调试ASM汇编语言程序 masm 9等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9265798.html

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

发表评论

登录后才能评论

评论列表(0条)

保存