1。开始-运行-CMD
2。X:回车 X代表你装MASM LINK DEBUG 等文件的地方 一定要打开X盘就能看见MASM LINK DEBUG这几个软件
3。cd masm 回车
4。edit GGTasm
5编写GGTASM程序
6 点击编辑窗口左上角的下拉菜单,出现一个SAVE,点击它,然后选下拉菜单的最一后项QUIT,然后回到DOS状态。
7。masm GGTASM 回车
8。link GGTOBJ 回车
9。debug GGTEXE
第九步查看和序运行结果
如有不懂再找我
首先说下功能:这是一个计数器,每秒计数一次,从0开始,计数到99后复位0,然后再反复执行。。
数码管是共阴型的,由P20,P21作为片选信号控制亮灭。P20、P21为0时,选中数码管,送入相应的段码,即可显示。程序如下:
#include <reg51h>
unsigned char shiwei,gewei,count,times;
uusigned char code table[]=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
void dly10ms(void);
void main()
{
shiwei=0; //十位数
gewei =0; //个位数
count=0; //计数器
times=0; //50次循环为1s
while(1) //死循环,反复执行
{
shiwei = count/10; //获取计数器的个位数,十位数
gewei = count%10;
if(count<100)
{
for(times=50;times>0;times--)
{
P2^0 = 1;
P2^1 = 1; //关闭所有显示
P0 = table[gewei]; //显示各位
P2^0 = 0;
dly10ms();
P2^0 = 1; //关闭显示
P0= table[shiwei]; //显示十位
P2^1 = 0;
dly10ms();
P2^1 = 1; //关闭显示
}
count = count + 1;
}
else { count=0; }
}
}
void dly10ms()
{
unsigned char i,j;
for(i=10;i>0;i--)
for(j=248;j>0;j--); //大概1ms,具体取决于晶振频率
}
呵呵,确实如哪位仁兄所说, 漏了些东西,现在补上了、、不过仁兄也出了些小毛病,似乎没有delay20ms()这个函数吧,应该改为delay10ms()、、而且,一般先判断再循环,能有效提高CPU效率,while每趟循环100次,这个小程序还好,大程序的话,CPU岂不累死?!
ASM为Assembly的简写,ASM指令的含义为汇编指令(泛指Intel 80X86 CPU中的指令集)。 ASM指令是为编程人员编写程序准备的,编译器将会把ASM指令真正的翻译成机器代码(能控制CPU做出 *** 作的代码)。
ASM至今运用广泛,2015年所有的个人电脑,大型服务器绝大多数使用ASM指令集。 ASM的优点在于指令广泛和丰富,处理大型数据游刃有余,但是缺点也是显而易见的,由于指令的长度不等与指令的复杂,其耗能大,CPU体积也大。 与ASM对立的是ARM, 一种相对ASM指令较少,指令长度相等,耗能低,CPU体积小,运行在ARM处理器上的汇编语言(这种汇编语言常见于智能手机上,主要原因是耗能问题)。
德国ASM所生产的位移传感器广泛被用于需要自动控制,检测,监测距离、位置或长度的测量,用户遍布全球。加速模拟工况法 AccelerationSimulation Mode 我们在享受汽车工业蓬勃发展带来便利的同时也深受其害,大量汽车尾气造成了城市环境污染,主要排放物HC、CO和NOx会形成光化学雾,严重危害城市居民生命财产安全。传统的怠速法检测汽车尾气,识别率低,人为因素多,很难将高污染车"绳之于法",也无法将这些车修理到真正尾气达标的状态。 早在60年代人们已经意识到了负荷试验法的优势,发展了一系列检测方法,如YTEST239、IM240等到了80年代中期,从多种负荷试验方法中明确了加速模拟工况法(AccelerationSimulation Mode,缩写为ASM)是最佳的方法之一,美国国家环保局(缩写为EPA)于90年代确认了ASM为I/M中的一种检验方法,并被广泛采用。汇编语言 ASM也是汇编语言源程序的扩展名,汇编程序员也称汇编为ASM 汇编语言(Assembly Language)是面向机器的程序设计语言汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。 在汇编语言中,用助记符(Memoni)代替 *** 作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为汇编。 汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 汇编语言的特点: 1面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 2保持了机器语言的优点,具有直接和简捷的特点。 3可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。 4目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5经常与高级语言配合使用,应用十分广泛。 汇编语言的应用: 170%以上的系统软件是用汇编语言编写的。 2某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 3某些高级绘图程序、视频游戏程序是用汇编语言编写的。 汇编语言(Assembly Language)的源程序的扩展名是ASM(Assembly的缩写),所以汇编程序员也称汇编为ASM自动存储管理 Automatic Storage Management 自动存储管理 (ASM) ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除"热点"。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。 ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于 *** 作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复 *** 作的唯一途径就是通过恢复管理器 (RMAN)。 ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB。 安装ASM 在Linux 平台上,ASM 可以使用原始设备,或通过 ASMLib 接口管理的设备。出于易于使用和性能方面的原因,Oracle 建议在原始设备上使用 ASMLib。ASMLib 现在可以从 OTN 免费下载。本部分逐步讲解使用 ASMLib 配置一个简单 ASM 实例和构建一个使用 ASM 进行磁盘存储的数据库的全过程。 确定所需的 ASMLib 版本 ASMLib 以三个 Linux 程序包组成的程序包集提供: oracleasmlib - ASM 库 oracleasm-support - 用于管理 ASMLib 的实用程序 oracleasm - ASM 库的内核模块 每个Linux 发行套件都有其自己的 ASMLib 程序包集。
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文件中,方便自己使用
。
data
szText db 'HelloWorld',0
code
start:
invoke MessageBox,NULL,addr szText,addr szText,MB_OK
invoke ExitProcess,NULL
end start
这样才是对的, MASM615编译通过
PS: 前面的模式定义和头文件我省略了
Turbo C 20 中,利用asm关键字实现在源程序中嵌入汇编语句。
在TC2中,asm是一个关键字(key word)用来在程序中嵌入汇编语言。使用asm关键字的格式为:
asm {
汇编程序语句块
}
因为asm是TC2的关键字,所以用asm嵌入汇编程序不需要特殊的头文件。
在你的程序中,函数iowrite 和 ioread是利用嵌入汇编程序实现的。按常规方法向函数传入参数,调用,获取返回值。也就是说,用汇编实现的函数与常规函数没有什么差异。
主程序调用写在其他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 即可
若是这些工作做得没有差错,编译或者连接时出现差错,则最大可能性是:你的子过程名写错了,解决的办法是
把所有出现子过程名的地方重新复制粘贴一遍。
以上就是关于编写一个完整汇编语言源程序GGT.ASM 在计算机通过,需要哪几个步骤全部的内容,包括:编写一个完整汇编语言源程序GGT.ASM 在计算机通过,需要哪几个步骤、c51单片机汇编ASM转化成C语言、asm指令是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)