第八周课上测试
测试一
- 任务详细
- 参考 http://www.cnblogs.com/rocedu/p/6766748.html#SECCLA 在Linux下完成“求命令行传入整数参数的和”
- 测试代码传入自己的8位学号
- 运行代码
#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); }
- 截图
测试二
- 任务详情
- 把第一个练习中的代码在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
- 截图
- 编译汇编代码
- 使用Y86-64模拟器
- 将Y86-64模拟器下载到虚拟机后,使用
unzip Y86-64模拟器.zip
解压 - 使用
tar -xf sim.tar
解压sim
- 参考Y86模拟器按照步骤安装好Y86模拟器
- 进入sim目录开始编译
cd sim
make clean;make
- `
- 运行图形界面
cd pipe
./psim -t -g ../y86-code/asum.yo
- 将测试一中的X86-64汇编代码翻译成Y86-64汇编代码
- 将Y86-64模拟器下载到虚拟机后,使用
测试三
- 任务详情
- 基于socket使用教材的
csapp.h
、csapp.c
,实现daytime(13)
服务器(端口我们使用13+后三位学号)和客户端 - 服务器响应消息格式是
客户端IP:XXXX 服务器实现者学号:XXXXXXXX 当前时间: XX:XX:XX
- 基于socket使用教材的
- 关于
daytime
daytime
服务是基于TCP的应用,服务器在TCP端口13侦听,一旦有连接建立就返回ASCII形式的日期和时间(接收到的任何数据被忽略),在传送完后关闭连接。- daytime服务也可以使用UDP协议,它的端口也是13,不过UDP是用数据报传送当前时间的。接收到的数据被忽略
- 格式
- 对于daytime没有特定的格式,建议使用ASCII可打印字符,空格和回车换行符,daytime应该在一行上。
- 代码链接
- 结果截图
- 单个客户端请求
- 多个客户端请求
- 单个客户端请求