控制台:清屏, 光标定位 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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)