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
标签:int,安装,基础,openssl,实验,quad,OpenEuler,data,x0 来源: https://www.cnblogs.com/daijunxi2019/p/15642903.html