C语言关键字asm有什么用途和在什么地方使用?麻烦大家了!首先表示感谢!

C语言关键字asm有什么用途和在什么地方使用?麻烦大家了!首先表示感谢!,第1张

ASM(Assembly Language)是汇编语言源程序的扩展名,汇编程序员也称汇编为ASM

当你要在程序中插入一段汇编语言代码的时候,使用

_asm { (汇编代码)} 注意前面有个下划线。

当你要插入一句汇编语言代码的时候,也可以这么写如

_asm MOV AL, 2

ASM是C++中的一个关键字,用于在C++源码中内嵌汇编语言。ASM能写在任何C++合法语句中,目前asm还不是C的标准关键字,C11标准未加入正文,仅在Annex J中标记为“公共扩展”。

C++中的asm关键字用法。

__asm关键字启动内联汇编并且能写在任何C++合法语句之处。它不能单独出现,必须接汇编指令、一组被大括号包含的指令或一对空括号。术语“__asm 块”在这里是任意一个指令或一组指令无论是否在括号内。

以下代码片段是在括号内的一个简单的__asm块。

_asm { mov al, 2  mov dx, 0xD007 out al, dx }

另一种方法是,你可以在每个汇编指令前放置__asm

__asm mov al, 2

__asm mov dx, 0xD007

__asm out al, dx

因为__asm关键字是一个语句分隔符,你也可以将汇编指令放在同一行。

__asm mov al, 2 __asm mov dx, 0xD007 __asm out al, dx。

以上三个的例子产生相同的代码,但是第一种风格(把__asm块用括号括起来)有一些优势。括号可以清晰的将C或C++代码和汇编代码分开,并且避免了不必要的重复__asm关键字。括号也能避免模糊性。如果你想在__asm块的同一行放置一个C或C++语句,你必须将块用括号括起来。没有括号,编译器不能区分汇编代码在哪里停止以及C或C++代码在哪里开始。最后,因为在括号的文字有和原始MASM一样的格式,你能轻松的从一个已有的MASM源文件里剪切和黏贴文字到文件来。

不同于C和C++的括号,在Visual Studio中,包含__asm块的括号对变量的作用域并没有效果。你也能嵌套__asm块,嵌套对变量作用域也没有效果。

oracle 10R2推出了asmcmd这个工具,可以用来管理asm存储上的文件。

1.使用asmcmd命令必须先启动asm实例,不然会有以下报错:rac2->asmcmd -p

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)2.使用asmcmd必须先指定ORACLE_HOME和ORACLE_SID,注意此处ORACLE_SID是asm的sid,不然会报错:rac2->asmcmd -p

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)3.asmcmd命令带p参数和不带p参数的作用:

带p,使用asmcmd将显示当前路径:rac2->asmcmd -p

ASMCMD [+] >ls

DG1/

RECOVERDEST/

ASMCMD [+] >cd DG1

ASMCMD [+DG1] >ls

DEVDB/

ASMCMD [+DG1] >cd DEVDB

ASMCMD [+DG1/DEVDB] >不带p,不显示当前路径:rac2->asmcmd

ASMCMD>ls

DG1/

RECOVERDEST/

ASMCMD>cd DG1

ASMCMD>ls

DEVDB/

ASMCMD>cd DEVDB

ASMCMD>4.其他相关参数,可使用help查看ASMCMD [+] >help

asmcmd [-p] [command]

The environment variables ORACLE_HOME and ORACLE_SID determine the

instance to which the program connects, and ASMCMD establishes a

bequeath connection to it, in the same manner as a SQLPLUS / AS

SYSDBA. The user must be a member of the SYSDBA group.

Specifying the -p option allows the current directory to be displayed

in the command prompt, like so:

ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >

[command] specifies one of the following commands, along with its

parameters.

Type "help [command]" to get help on a specific ASMCMD command.

commands:

--------

cd

du

find

help

ls

lsct

lsdg

mkalias

mkdir

pwd

rm

rmalias


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

原文地址: http://outofmemory.cn/tougao/12098795.html

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

发表评论

登录后才能评论

评论列表(0条)

保存