• OpenEuler基础实验


    一、OpenEuler的安装

    我使用VmWare安装的OpenEuler,映像文件选择的是 openEuler-20.03-LTS-SP2-x86_64-dvd.iso
    安装具体过程如下:
    1、创建新的虚拟机

    2、选择典型

    3、暂不选映像文件

    4、选择其他、linux 4.x 64位

    5、对虚拟机进行命名

    6、这里分配大小我选择40G,虚拟磁盘设为单个文件

    7、创建成功

    8、更改设置

    9、选择自己下载好的映像文件,设置内核以及内存大小

    10、进入虚拟机,选择第一行并确定

    11、进行设置

    12、联网

    13、设置根密码,然后即可安装

    14、点击安装后完成


    二、OpenSSL的安装,并测试

    1、解压源代码

    tar xzvf openssl-1.1.0-pre1.tar.gz 
    

    2、进入源代码目录:

    cd openssl-1.1.0-pre1
    

    3、编译安装

    ./config
    

    make
    

    sudo install make
    

    4、查看帮助文档

    man openssl
    

    5、编写一个测试代码test_openssl.c

    #include <stdio.h>
    #include <openssl/evp.h>
    
    int main(){
    	
        OpenSSL_add_all_algorithms();
    	
        return 0;
    }
    

    6、编译

    gcc -o to test_openssl.c -I /usr/local/ssl/inlcude -L /usr/local/ssl/lib -lssl -lcrypto -ldl -lpthread
    
    

    报错,需要安装OpenSSL开发包

    sudo yum install openssl-devel
    

    重新编译后通过,并执行

    ./to;echo $?
    

    结果打印0

    三、实验

    使用华为云服务器

    1、查找最大数
    code

    .section .data
    .align 3
    my_data:
            .quad 10
            .quad 22
            .quad 51
            .quad 81
            .quad 1250
            .quad 1313
    
    my_data_count:
            .quad 6
    
    .align 3    
    print_data:
            .string "big data: %d\n"
    
    .section .text
    .globl main
    main:
            stp x29, x30, [sp, -16]!
    
            ldr x0, =my_data
            ldr x1, my_data_count
    
            add x4, x0, #40
    
            mov x3, xzr
    1:
            ldr x2, [x0], #8
            cmp x2, x3
            csel x3, x2, x3, hi
    
            cmp x0, x4
            b.ls 1b
    
            ldr x0, =print_data
            mov x1, x3
    
            bl printf
    
            ldp x29, x30, [sp], 16
            ret
    

    编译后发现报错

    检查后是因为在新版本的linux 系统下安装 glibc-devel、glibc和gcc-c++时,都不会安装libc.a. 只安装libc.so. 所以当使用-static时,libc.a不能使用。只能报找不到libc了。

    解决方法是安装 glibc-static

    sudo yum install glibc-static
    

    重新编译,最大数为1313

    2、通过 C 语言调用汇编函数
    main.c

    #include <stdio.h>
    extern int compare_data(int a, int b);
    int main()
    { 
    	int val;
    	val = compare_data(5, 6);
    	printf("big data: %d\n", val);
    }
    

    compare.s

    .section .text
    .globl compare_data
    compare_data:
    	cmp x0, x1	
    	csel x0, x0, x1, hi
    	ret
    

  • 相关阅读:
    javascript学习6
    javascript学习5
    javascript学习4
    javaccript学习3
    javaccript学习2
    javaccript学习1
    C++ 线性表实现
    深入解析策略模式(转)
    CentOS7安装MySQL
    万能媒体播放器 PotPlayer
  • 原文地址:https://www.cnblogs.com/daijunxi2019/p/15642903.html
Copyright © 2020-2023  润新知