开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 432|回复: 7
收起左侧

[求助] 求助c#代码实现汇编

[复制链接]
结帖率:83% (10/12)
发表于 2024-4-12 16:48:56 | 显示全部楼层 |阅读模式   河南省商丘市
易语言中是:
置入代码 ({ 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 })
转成汇编代码是这样:
push esi
mov esi, 0x0000000F
lea ecx, dword [ebp+0x08]
lea ecx, dword [ecx+esi*8-0x04]
label1:
mov eax, dword [ecx+0x04]
test eax, eax
je label2
push dword [ecx]
label2:
dec esi
sub ecx, 0x08
test esi, esi
jne label1
call dword [ebp+0x08]
pop esi
leave
retn 0x007C
求助各位大佬,能不能用c#写个例子实现这个代码。
谢谢各位大佬。

结帖率:97% (32/33)

签到天数: 21 天

发表于 2024-4-12 17:04:24 | 显示全部楼层   广东省广州市
C# 最简单就是易语言写一个DLL然后C#调用
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2024-4-12 17:27:53 | 显示全部楼层   广西壮族自治区钦州市
8881020 发表于 2024-4-12 17:04
C# 最简单就是易语言写一个DLL然后C#调用

我就是这样,可是只能32的
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)

签到天数: 7 天

发表于 2024-4-12 17:30:33 | 显示全部楼层   广东省深圳市
int sum(int a, int b) {
    int result;
    __asm {
        mov eax, a
        add eax, b
        mov result, eax
    }
    return result;
}

    static void Main(string[] args)
    {
        int a = 10;
        int b = 20;
        int result = sum(a, b);
        Console.WriteLine($"Sum of {a} and {b} is {result}");
    }
回复 支持 反对

使用道具 举报

结帖率:83% (10/12)

签到天数: 22 天

 楼主| 发表于 2024-4-12 17:40:32 | 显示全部楼层   河南省商丘市
24124 发表于 2024-4-12 17:30
int sum(int a, int b) {
    int result;
    __asm {

大佬,c#支持asm吗
回复 支持 反对

使用道具 举报

结帖率:93% (248/268)

签到天数: 18 天

发表于 2024-4-12 17:44:58 | 显示全部楼层   广西壮族自治区崇左市
我页不知道能不能用,翻译的


[C#] 纯文本查看 复制代码
using System;

class Program
{
    static void Main(string[] args)
    {
        int[] code = { 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 };
        ExecuteAssemblyCode(code);
    }

    static void ExecuteAssemblyCode(int[] code)
    {
        int esi = 0x0000000F;
        int ebp = 0; // Assuming ebp is a base pointer

        int ecx = ebp + 0x08 + esi * 8 - 0x04;

    label1:
        int eax = BitConverter.ToInt32(code, ecx + 0x04);
        if (eax != 0)
        {
            // Push dword [ecx]
            // Assuming dword [ecx] is an integer in the code array
            int value = BitConverter.ToInt32(code, ecx);
            // Perform whatever operation you need with 'value'
            Console.WriteLine(value);
        }

        esi--;
        ecx -= 0x08;

        if (esi != 0)
            goto label1;

        // Call dword [ebp+0x08]
        // Assuming ebp+0x08 contains the address of a function to call
        CallFunction(code, ebp + 0x08);
    }

    static void CallFunction(int[] code, int address)
    {
        // Implement calling the function at the specified address
        // This part depends on how functions are called in your C# environment
        // You may need to use delegates or other mechanisms to call the function
        Console.WriteLine("Calling function at address: " + address);
    }
}
回复 支持 反对

使用道具 举报

结帖率:93% (248/268)

签到天数: 18 天

发表于 2024-4-12 17:45:20 | 显示全部楼层   广西壮族自治区崇左市
我页不知道能不能用,翻译的


[C#] 纯文本查看 复制代码
using System;

class Program
{
    static void Main(string[] args)
    {
        int[] code = { 86, 190, 15, 0, 0, 0, 141, 77, 8, 141, 76, 241, 252, 139, 65, 4, 133, 192, 116, 2, 255, 49, 78, 131, 233, 8, 133, 246, 117, 239, 255, 85, 8, 94, 201, 194, 124, 0 };
        ExecuteAssemblyCode(code);
    }

    static void ExecuteAssemblyCode(int[] code)
    {
        int esi = 0x0000000F;
        int ebp = 0; // Assuming ebp is a base pointer

        int ecx = ebp + 0x08 + esi * 8 - 0x04;

    label1:
        int eax = BitConverter.ToInt32(code, ecx + 0x04);
        if (eax != 0)
        {
            // Push dword [ecx]
            // Assuming dword [ecx] is an integer in the code array
            int value = BitConverter.ToInt32(code, ecx);
            // Perform whatever operation you need with 'value'
            Console.WriteLine(value);
        }

        esi--;
        ecx -= 0x08;

        if (esi != 0)
            goto label1;

        // Call dword [ebp+0x08]
        // Assuming ebp+0x08 contains the address of a function to call
        CallFunction(code, ebp + 0x08);
    }

    static void CallFunction(int[] code, int address)
    {
        // Implement calling the function at the specified address
        // This part depends on how functions are called in your C# environment
        // You may need to use delegates or other mechanisms to call the function
        Console.WriteLine("Calling function at address: " + address);
    }
}
回复 支持 反对

使用道具 举报

结帖率:54% (7/13)

签到天数: 20 天

发表于 2024-4-12 18:02:28 | 显示全部楼层   浙江省嘉兴市

[C#] 纯文本查看 复制代码
using System;

class Program
{
    static void Main()
    {
        int[] array = new int[15];
        
        for (int i = 0; i < array.Length; i++)
        {
            array = i + 1; 
        }
        

        for (int i = 0; i < array.Length; i++)
        {
            if (array != 0) 
            {
                Console.WriteLine(array);
            }
            else
            {
                break;
            }
        }
        
        CallFunction();
    }
    
    static void CallFunction()
    {
        Console.WriteLine("Function called.");
    }
}
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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