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

posted @ 2021-12-05 21:53  djx20191313  阅读(158)  评论(0编辑  收藏  举报