火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 22522|回复: 15
打印 上一主题 下一主题

[视窗] 关于火山视窗平台如何使用汇编代码

[复制链接]

54

主题

1356

帖子

7565

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7565
跳转到指定楼层
楼主
发表于 2020-10-31 23:24:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
其实非常简单,和cpp文件一样处理就行,类似如下:



或者直接导入汇编文件所编译好的静态lib:



这两个属性可以根据实际情况设置在包/类/方法上.
在系统安装目录的类库中有汇编源文件的例子:
plugins\vprj_win\classlib\sys\base\libs\win_base\projects\x64\asm_64\spin_lock_64.asm

如果您开发的是32位程序,直接采用如下方式内嵌汇编代码就行:

@ _asm {
@     mov eax, 0
@     mov ecx, eax
@ }

64位程序不支持直接嵌入汇编代码,就要采用前面所提到的方式引入单独的汇编源文件或汇编源文件所编译的静态库,引入完毕后使用类似以下指令导入其中符号:
    @ extern "C" void _spin_lock (pthread_spinlock_t* pSpinLocker);
    @ extern "C" INT_P _spin_trylock (pthread_spinlock_t* pSpinLocker);

以上导入的是前面所提到的spin_lock_64.asm中的符号,然后直接在程序中直接调用即可,譬如:
    @ _spin_trylock (&m_lock)


评分

参与人数 1金钱 +1 收起 理由
4566704 + 1 神马都是浮云

查看全部评分

回复

使用道具 举报

0

主题

5

帖子

72

积分

注册会员

Rank: 2

积分
72
沙发
发表于 2020-10-31 23:41:45 | 只看该作者
火山牛批
回复

使用道具 举报

5

主题

219

帖子

2556

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2556
板凳
发表于 2020-11-1 02:12:33 | 只看该作者
  牛
回复

使用道具 举报

6

主题

285

帖子

1761

积分

金牌会员

Rank: 6Rank: 6

积分
1761
地板
发表于 2020-11-1 08:45:10 | 只看该作者
置入代码()可以?
回复

使用道具 举报

9

主题

102

帖子

1122

积分

金牌会员

Rank: 6Rank: 6

积分
1122
5#
发表于 2020-11-1 13:17:18 | 只看该作者
本帖最后由 Zero 于 2020-11-1 13:18 编辑
huoshan518 发表于 2020-11-1 08:45
置入代码()可以?
  1. 置入代码 ({137,192})
复制代码
  1. __asm{  
  2.   _emit 137
  3.   _emit 192
  4. }
复制代码



回复

使用道具 举报

359

主题

6669

帖子

1万

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
16702
6#
发表于 2020-11-1 15:32:35 来自手机 | 只看该作者
吴总666
回复

使用道具 举报

2

主题

34

帖子

297

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
297
7#
发表于 2020-11-1 17:19:07 | 只看该作者
有__try 吗?
回复

使用道具 举报

23

主题

173

帖子

2758

积分

贵宾

Rank: 9Rank: 9Rank: 9

积分
2758
8#
发表于 2020-11-8 14:19:19 | 只看该作者
能不能来个简单的例子
回复

使用道具 举报

2

主题

5

帖子

118

积分

注册会员

Rank: 2

积分
118
9#
发表于 2020-11-8 20:38:10 | 只看该作者
不太懂 可以提供一下X64的汇编例子吗
回复

使用道具 举报

4

主题

14

帖子

118

积分

注册会员

Rank: 2

积分
118
10#
发表于 2020-11-8 23:02:05 | 只看该作者
哥,求例子.........小白还不咋会..........
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-6-2 04:47 , Processed in 0.100597 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表