关于c调用汇编函数 汇编如何获得得到的参数呢

关于c调用汇编函数 汇编如何获得得到的参数呢,第1张

参数传递规则要根据函数遵循的调用约定而定,不同的调用约定(stdcall,C约定fast call,pascal等)其不同,也可以使用自己的约定(在你非常熟悉接口或底层做了什么的情况下),

一般esp+4是eip的值,如果不清楚所用约定,是尝试esp+24,esp+34等,还得注意在子程序的堆栈平衡,自己参考线调用约定的内容吧

ASM提供远程电源循环,启动自检(POST),当由LPD或预先故障分析提供的电压、温度等参数超标时呼机报警等功能。呼机报警需要客户自行提供一个调制解调器。呼机可提供文字或数字警告。ASM卡也可作为NAS的选件。PCI的ASM卡可将报警发至IBM Director控制台。通过一个ASM卡,最多可以有12台NAS设备作级联,给IBMDirector控制台提供报警功能。ASM通过另外的电源线供电,可以将其插在NAS的另一个电源模块上。

从左到右:

USB口取得5V电源

经SW开关

经由1117-33 稳压得到33V电压(330欧串LED作电源指示灯)

经C8滤波

得到33V直流电源。

AMS1117的参数请参考:

>

asm汇编代码你可以通过指令和 *** 作数占用字节大小来判断。一般编译器编译时没有特殊情况会把代码相邻的地方编译成汇编低层指令时也相邻,你可以在汇编代码开头取一下当前地址指令,再汇编代码结束的地方再取一下当前地址,然后想减。如果不改变汇编代码,你也可以在_asm{……}前后分别做个标记,可以是个变量,取这两个标记的地址,相减来获取汇编代码,不过不提倡你用后面两种方法。最好通过指令和 *** 作数占用字节大小来计算,注意,intel系列的指令大小占用字节不固定。

PAL

PAL制式是电视广播中色彩编码的一种方法,全名为 Phase Alternating Line 逐行倒相。它是西德在1962年指定的彩色电视广播标准,它采用逐行倒相正交平衡调幅的技术方法,克服了NTSC制相位敏感造成色彩失真的缺点。西德、英国等一些西欧国家,新加坡、中国大陆及香港,澳大利亚、新西兰等国家采用这种制式。PAL由德国人Walter Bruch在1967年提出,当时他是为德律风根(Telefunken)工作。“PAL”有时亦被用来指625 线,每秒25格,隔行扫描, PAL色彩编码的电视制式。PAL制式中根据不同的参数细节,又可以进一步划分为G、I、D等制式,其中PAL-D制是我国大陆采用的制式。

------------- 释义2 -----------------

pal , 台湾大宇资讯公司的 pc游戏《仙剑奇侠传》的英文名。

花絮:PAL由来

《仙剑奇侠传》原本没有英文名,林坤信写音乐给姚壮宪的时候用的目录名为PAL,意即paladin(paladin:

骑士, 游侠, (一项事业的)杰出倡导者)的缩写,一直沿用至今。

注:谢崇辉、林坤信、姚壮宪,三人是《仙剑奇侠传DOS版》的主创人员。其中林坤信负责游戏配乐,仙剑一代里所有经典音乐都是他写的。

------------- 释义3 -----------------

PAL 魔兽争霸3中人类英雄:圣骑士Paladin 的缩写

介绍:大主教阿伦索斯·法奥在第二次战争中建立了白银之手骑士团。这些神圣的骑士——人们通常称他们为圣骑士——领导着对抗邪恶兽人的战争并保证洛丹伦不会变成一片废墟。虽然第二次战争已经结束将近15年了,圣骑士仍然为保护被邪恶不断侵蚀的人性而做出无私的奉献。在光明力量的指引下,他们以战锤和神圣之火作为武器,对抗一切杀戮无辜人民的敌人。

具有

神圣之光 (Holy Light):

神圣之光可以治疗我方受伤的单位或者伤害不死族的单位 (快截键 "T")。

专注光环 (Devotion Aura):

增加周围友军的护甲值。

神圣之盾 (Divine Shield):

圣骑士可以将自己笼罩在一层无法穿透的光明结界中,从而免受任何物理和魔法伤害。

复生(Resurrection)(终极魔法):

让已经死亡的最多6个我方单位重新返回战场当死亡单位超过6个时,会将在范围内的最强大的6个单位复活(快捷键 "R")。

等技能

ASM

(AccelerationSimulation Mode,缩写为ASM)

我们在享受汽车工业蓬勃发展带来便利的同时也深受其害,大量汽车尾气造成了城市

环境污染,主要排放物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

正好刚整理了一个这方面的资料,先贴给你吧

准备ASM环境

ASM使用一个名叫“+ASM”的数据库实例来管理ASM磁盘,因此在配置ASM磁盘之前,需要先启动ASM实例。另外还需要注意,ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。ASM 实例的创建和删除可以用DBCA 工具来 *** 作。在DBCA的第一个界面选择配置自动存储管理就可以进入ASM配置的界面。

根据提示运行脚本就可以配置和启动CSS(Cluster Synchronization Service)了,注意要以root的身份运行这个脚本,运行情况如下:

# /u01/app/oracle/product/1020/db_1/bin/localconfig add

/etc/oracle does not exist Creating it now

Successfully accumulated necessary OCR keys

Creating OCR keys for user 'root', privgrp 'root'

Operation successful

Configuration for local CSS has been initialized

Adding to inittab

Startup will be queued to init within 90 seconds

Checking the status of new Oracle init process

Expecting the CRS daemons to be up within 600 seconds

CSS is active on these nodes

s1

CSS is active on all nodes

Oracle CSS service is installed and running under init(1M)

ASM可以使用裸设备或者ASMLib方式, 因为裸设备的维护更罗嗦一些,本文只讨论ASMLib方式。为了在Linux系统中使用ASMLib方式准备ASM磁盘,需要安装相关的软件,下载链接如下:

下载时注意选择自己的 *** 作系统和内核的版本,我下载到的是以下三个软件:

oracleasm-2618-164el5-205-1el5i686rpm

oracleasmlib-204-1el5i386rpm

oracleasm-support-214-1el5i386rpm

这里特别需要注意第一个软件要和你的Linux内核的版本一致。(其实我的内核版本是2618-155el5,但是在官方网站找不到完全对应的版本,只好使用这个2618-164el5的版本了,后面会讲怎么解决这个问题。)接下来进行软件的安装,只需要使用rpm命令即可。

# rpm -ivh oracleasm

现在安装oracleasm模块可能会报错,像我因为没有找到对应我的内核版本的oracleasm软件就遇到了这个问题。经过一番查找,发现软件将oracleasm的模块文件oracleasmko安装到了目录/lib/modules/2618-164el5/kernel/drivers/addon/oracleasm中,而我的默认的模块文件路径应该是/lib/modules/2618-155el5,因此决定手工建立相关的目录和文件。

# mkdir -p /lib/modules/2618-155el5/kernel/drivers/addon/oracleasm

# cp oracleasmko /lib/modules/2618-155el5/kernel/drivers/addon/oracleasm

然后再安装oracleasm的模块文件就可以通过了:

# depmod -a

# modprobe oracleasm

最后进行oracleasm服务的初始配置

# service oracleasm configure

Configuring the Oracle ASM library driver

This will configure the on-boot properties of the Oracle ASM library

driver The following questions will determine whether the driver is

loaded on boot and what permissions it will have The current values

will be shown in brackets ('[]') Hitting <ENTER> without typing an

answer will keep that current value Ctrl-C will abort

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]:

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [ OK ]

Scanning the system for Oracle ASMLib disks: [ OK ]

好了,现在已经有了初步的ASM配置环境,接下来就可以准备磁盘了。

添加ASM磁盘组

为了实现ASM的磁盘负载均衡和冗余能力,我准备使用四个磁盘建立ASM的磁盘组,因此需要为Linux系统添加四个磁盘。为了搭建这个环境,我使用的是VMware环境,因此添加磁盘就非常容易了。只需要在VMware的设置中选择添加硬件即可,而且现在的VMware版本是可以支持磁盘的热插拔的。无需关闭Linux系统,直接添加磁盘即可。添加完四个磁盘之后,为了让Linux系统马上识别这几个磁盘,可以运行如下命令:

# echo 'scsi add-single-device 0 0 1 0' > /proc/scsi/scsi

# echo 'scsi add-single-device 0 0 2 0' > /proc/scsi/scsi

# echo 'scsi add-single-device 0 0 3 0' > /proc/scsi/scsi

# echo 'scsi add-single-device 0 0 4 0' > /proc/scsi/scsi

运行fdisk -l命令可以看到系统中增加了/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四个磁盘。使用fdisk工具在这个四个磁盘上各建立一个分区(具体步骤略,不熟悉的可以查阅Linux的fdisk命令用法)。

然后运行oracleasm createdisk命令添加ASM磁盘:

# oracleasm createdisk VOL1 /dev/sdb1

Writing disk header: done

Instantiating disk: done

依次添加/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四个磁盘分区,完成后检查如下:

# oracleasm listdisks

VOL1

VOL2

VOL3

VOL4

这时运行DBCA工具的ASM配置向导就可以建立ASM磁盘组了。进入DBCA向导后,选择“Configure Automatic Storage Management”,然后单击“Create New”按钮,可以看到ASM磁盘组的配置界面。输入磁盘组的名称,如“dg1”,关于冗余级别,我选择了Norma,并且将VOL1和VOL2设置为一个Failure Group,而VOL3和VOL4设置为一个Failure Group。

以上 *** 作也可以使用sqlplus连接到ASM实例上,使用命令完成。

为了连接到ASM实例上,首先需要设置ORACLE_SID环境变量,然后再使用sqlplus进行连接:

# ORACLE_SID=+ASM

# sqlplus / as sysdba

创建Disk Group的语句如下:

SQL> create diskgroup dg1 normal redundancy

failgroup fg1 disk 'ORCL:VOL1','ORCL:VOL2'

failgroup fg2 disk 'ORCL:VOL3','ORCL:VOL4';

至此,ASM磁盘组的准备已经完成,终于可以在ASM上建立数据库了。还是使用DBCA工具,选择“Create Database”进入创建数据库的向导。按照向导 *** 作,只是在选择存储机制时,选择ASM类型。

以上就是关于关于c调用汇编函数 汇编如何获得得到的参数呢全部的内容,包括:关于c调用汇编函数 汇编如何获得得到的参数呢、NAS的ASM芯片的功能是什么、AMS1117的5v转3.3v电路原理,具体的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/10155651.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存