2017-2018-1 20155229 《信息安全系统设计基础》课下作业

本文详细记录了一次计算机课程中的实践内容,包括X86-64汇编代码的反汇编、Y86-64汇编代码的转换尝试,以及基于socket的daytime服务器和客户端的设计与实现过程。此外,还探讨了多进程和多线程并发服务器的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

课上测试完成了第一个,所以现在补充第二个和第三个

课上测试2

  • 把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图

  • 把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)

汇编代码为:

832288-20171112205022450-1929586501.jpg

通过objdump -d command.o反汇编

机器代码为:

832288-20171112205922778-579405920.jpg

学习安装的了Y86-64模拟器,但是一直无法打开

832288-20171112210309591-1140487340.jpg

参考20155232李书琪的博客 发现https://boginw.github.io/js-y86-64/这个网址能够将x86-64 转为y86-64,但是转换出的一直有问题,还需下来再看看

课上测试3

  • 基于socket 使用教材的csapp.h csapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
    服务器响应消息格式是

客户端IP:XXXX

服务器实现者学号:XXXXXXXX

当前时间: XX:XX:XX

832288-20171113000928919-790660482.jpg

课下作业1 4.47

#include<stdio.h>
void bubble_a(int *data, int count){
    int i,next;
    for(next = 1; next < count; next++){
        for(i = next - 1; i >= 0; i--)
            if(*(data + i + 1) < *(data + i)){
                int t = *(data + i + 1);
                *(data + i + 1) = *(data + i);
                *(data + i) = t;
            }
    }
}

代码运行结果的截图
832288-20171112214746794-1588273741.jpg

x-64:
832288-20171112214310309-941447459.jpg

y-86:

目前尚未弄出

课下作业4.48

4.47代码实现冒泡排序,要求不使用跳转,且最多使用3次跳转

x-86:
832288-20171112224015450-831828406.jpg

y-86:

目前尚未弄出

课下作业4.49

4.47代码实现冒泡排序,要求不使用跳转,且只使用1次条件传送

x-86:

832288-20171112224558075-969761761.jpg

y-86:

目前尚未弄出

课下作业2

把课上练习3的daytime服务器分别用多进程和多线程实现成并发服务器并测试

** 因为运行时csapp一直出现问题,所以运行成功后进行截图已经过了时间
多进程:
832288-20171113000853231-1947351505.jpg

832288-20171113000917075-722622883.jpg

832288-20171113000910169-842118625.jpg

多线程:
** 在截图过程中,电脑没电了,当时只截了两张客户端的图,如下

832288-20171113073604781-1007228382.jpg

832288-20171113073612109-644263246.jpg

现在重新进行连接,运行,和截图

832288-20171113073652062-1635477516.jpg

转载于:https://www.cnblogs.com/fyhtvxq/p/7823545.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值