第八周课上测试

测试一

  • 任务详细
  • 运行代码
      #include <stdio.h>
      void main(int argc,char** argv)
      {
         int i,a,sum=0;
         for(i=1;i<argc;i++)
         {
              a=atoi(argv[i]);
              sum = sum +a;
         }
         printf("%d\n",sum);
      }
    
  • 截图
    image

测试二

  • 任务详情
    • 把第一个练习中的代码在X86-64(Ubuntu)中反汇编,给出汇编代码和机器码的截图
    • 把X86-64汇编翻译成Y86-64汇编,并给出相应机器码的截图(使用附件中的Y86-64模拟器)
  • 在Ubuntu中
    • 编译汇编代码
      • gcc -E XXX.c -o XXX.i
      • gcc -S XXX.i -o XXX.s
    • 查看汇编代码:cat XXX.s
    • 查看机器码:objdump -d XXX.o
    • 截图
      • image
      • image
  • 使用Y86-64模拟器
    • 将Y86-64模拟器下载到虚拟机后,使用unzip Y86-64模拟器.zip 解压
    • 使用tar -xf sim.tar解压sim
    • 参考Y86模拟器按照步骤安装好Y86模拟器
    • 进入sim目录开始编译
      • cd sim
      • make clean;make
      • image`
    • 运行图形界面
      • cd pipe
      • ./psim -t -g ../y86-code/asum.yo
    • 将测试一中的X86-64汇编代码翻译成Y86-64汇编代码

测试三

  • 任务详情
    • 基于socket使用教材的csapp.hcsapp.c,实现daytime(13)服务器(端口我们使用13+后三位学号)和客户端
    • 服务器响应消息格式是
          客户端IP:XXXX
          服务器实现者学号:XXXXXXXX
          当前时间: XX:XX:XX
      
  • 关于daytime
    • daytime服务是基于TCP的应用,服务器在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间(接收到的任何数据被忽略),在传送完后关闭连接。
    • daytime服务也可以使用UDP协议,它的端口也是13,不过UDP是用数据报传送当前时间的。接收到的数据被忽略
    • 格式
      • 对于daytime没有特定的格式,建议使用ASCII可打印字符,空格和回车换行符,daytime应该在一行上。
  • 代码链接
  • 结果截图
    • 单个客户端请求
      image
    • 多个客户端请求
      image
posted @ 2018-11-29 10:53  20165330张羽昕  阅读(207)  评论(0编辑  收藏  举报