BUAA-X86Programming-2
X86汇编程序设计笔记-2
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《X86汇编程序设计》的学习笔记,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
编程技巧在编写 X86 程序时,掌握寄存器、内存存取等操作是非常重要的。因为 X86 提供的系统调用和 MIPS 相比更原始、更接近操作系统底层,而且寄存器等限制更多、数量更少,所以需要先熟练掌握后再开始编程,避免无谓的 debug。
系统调用寄存器的特殊使用
下面介绍的是在进行指令操作时必须遵守的规则,在遵守寄存器使用规则的同时也要注意系统调用使用的寄存器可能会和当前正在执行的操作抢占相同的寄存器(比如 AX 存数据的同时向 AH 赋值进行系统调用,就破坏了原有的数据),只要是给寄存器赋值就要注意会不会影响其他数据,当成在写编译器处理寄存器就完事了
AX:乘除指令存放左侧的运算数(乘数1或被除数),运算后保存结果(乘法存低 16 位、16 位除法 AH 商 & AL 余数、32 位除法商)
BX:间接寻址计数器,[BX] 表示 DS 段地址 + BX 偏移量的内存单元数据
CX:循环计数器、移 ...
BUAA-SoftwareEngineering-Task5
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务5-机械臂操控与语音识别输出实验目的
了解启智机器人的机械臂组件,并操作机械臂完成较为复杂的机械臂控制行为
启智机器人安装了一个可用于抓取桌面上物品的机械臂,该机械臂提供两个控制量:上升高度和手抓的闭合宽度。通过配合机器人其他传感器,设置这两个控制量,能够实现较为复杂的机械臂控制行为。
了解启智机器人的语音识别输出组件,实现语音识别、语音输出等交互操作
启智ROS 机器人头部Kinect2 下半部分有一组阵列麦克风,采集正前方的声音信息,可以用来接收语音指令。本实验将在虚拟机上模拟实现,使用语音识别引擎,识别语音指令,再通过语音输出交互内容。
实验任务
操作启智机器人机械臂,完成机械臂的操控和物体抓取任务。
编写语音交互中间节点,获取识别语音信息,输出对应信息。
实验内容机械臂控制例程
启动机器人机械臂控制示例进程和机械臂控制节点
roslaunch wpr_simulation wpb_table.launchrosrun w ...
BUAA-计算机网络实验-Exp3
本系列是北航计算机学院于 2024 年春季学期开设的核心专业课《计算机网络实验》课程的实验报告记录,实验形式为两人组队实验。由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
数据链路层 & 网络层实验 - 2
前半部分为实验的实际操作环节,后半为实验报告内容的填写。
实验内容
VLAN TRUNK 实验
VLAN TAG 实验
VLAN 间通信综合实验
子网划分设计型实验(含预习部分)
网络风暴与端口聚合实验
端口镜像实验
VLAN TRUNK 实验实验说明实验内容
不完全按照图示进行组网,注意要将 PCB 通过集线器(HUB)接在 S1 和 S2 之间,也即 S1、S2、PCB 共同接入集线器,这样 PCB 即可截获在 S1 和 S2 之间发送的报文信息
配置 VLAN 号与端口范围
VLAN 2port G 1/0/1 to G 1/0/5VLAN 3port G 1/0/20 to G 1/0/24
经过这样的简单配置后,连接在不同交换机上、处于相同 VLAN 的主机间仍然不能通信,因为 S1 与 S2 间的链路无法转发这些数据报
配置两台交换 ...
BUAA-计算机网络实验-Exp2
本系列是北航计算机学院于 2024 年春季学期开设的核心专业课《计算机网络实验》课程的实验报告记录,实验形式为两人组队实验。由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
数据链路层实验 & 网络层实验 - 1
前半部分为实验的实际操作环节,后半为实验报告内容的填写。本报告为线上完成的第二次实验报告,包括数据链路层和网络层的一部分,剩余部分在下一周线下完成
实验内容
以太网链路层帧格式分析
交换机 MAC 表与地址聚合
VLAN 配置与分析
PPP 协议实验(PPP、PAP、CHAP)
ARP 协议分析实验
ICMP 协议分析实验
IP 报文分析实验
网络层分片实验
路由表分析实验
以太网帧格式分析
分析比较 Ethernet Ⅱ 标准和 IEEE 802.3 标准的 MAC 帧格式
实验步骤
按给出的组网图连接并配置网络
启动抓包软件,分析 Etherner Ⅱ 帧格式(面向无连接的链路服务)
分析 IEEE 802.3 帧格式(面向有连接的链路服务)
实验内容
选择相应设备进行网络连接,只需要用到交换机 S1、PCA、PCB 三台设备
配置 PCA、PCB ...
BUAA-计算机网络实验-Exp1
本系列是北航计算机学院于 2024 年春季学期开设的核心专业课《计算机网络实验》课程的实验报告记录,实验形式为两人组队实验。由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
计算机网络实验入门
前半部分为实验的实际操作环节,后半为实验报告内容的填写。
实验目的
熟悉实验环境和实验设备的操作
实验内容
路由器和交换机的基本配置
报文分析软件使用
简单组网实验
基于地址转换的组网实验
网线的制作(课内计时小测验)
广播风暴与端口聚合实验(数据链路层)
熟悉使用在线实验平台或者华为网络模拟软件eNSP(二者可以选择一种)。
网线的制作与测试
掌握网线的制作和测试方法,了解 568A 与 568B 标准
网线又称双绞线,内含 8 根共四对双绞线
双绞线相互缠绕:利用铜线种电流产生电磁场的互相作用消除临近线路和外界的干扰
双绞线缠绕的次数决定抗干扰和通信质量
网线可分为屏蔽和非屏蔽两种,主要为非屏蔽式网线
地址转换实验
查询地址池表单
连线组网,让 PCD 监听 R1:e0/1 端口
清空交换机、路由器配置
reset saved-configurationreb ...
BUAA-SoftwareEngineering-Task4
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务4-机器人kinect相机使用实验目的
了解启智机器人的 Kinect2 视觉传感器,并操作传感器完成简单的图像处理任务
启智机器人头部装备一台 Kinect2 视觉传感器,可以输出图像或三维点云,从而能够进行监控、人脸识别、物体检测等行为。
实验任务
开启启智机器人的 Kinect2 传感器,实现监控、人脸识别、物体检测等任务
实验内容kinect实时监控本项目在任务 3 的基础上继续开发。
修改原始场景在启动原始场景的 wpb_launch.launch 文件中添加物体节点,并通过参数调整其在场景中的初始位置:
<node name="kai_standing" pkg="gazebo_ros" type="spawn_model" args="-file $(find wpr_simulation)/models/kai_standing.model -x ...
BUAA-FPGA多核并行计算-Exp2-2
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《FPGA多核并行计算》课程的实验报告记录,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
PYNQ与深度学习实验说明与实验相关内容上传在 Github 仓库中。实验过程中使用到的环境与程序:
Xilinx/QNN-MO-PYNQ
pjreddie/darknet
Xilinx/BNN-PYNQ
Xilinx/finn-hlslib
Xilinx/xilinx-tiny-cnn
实验分析配置QNN实验环境任务说明:了解FPGA平台所能运行的神经网络类型(BNN、QNN)
首先将 QNN-MO-PYNQ 以及 darknet 两个压缩包上传至开发板的 jupyter 开发环境。然后按照实验说明的要求实现拷贝文件与配置文件修改的操作;其中 darknet 压缩包需解压至 QNN-MO-PYNQ 的内部,配置文件需要注释检查 PLATFORM 的三处代码(位于),并将 git clone 的相关指令删除。
拷贝rapidjson到qnn/src/library目录下
cp -r QNN-MO-PYNQ-master ...
BUAA-X86Programming-Exp1
本系列是北航计算机学院于 2024 年春季学期开设的一般专业课《X86汇编程序设计》课程的实验报告记录,由于学习过程中掌握并不牢靠,如有错误请读者不吝赐教!
这所谓“水印”真逆天吧,写个小文儿都这么麻烦
X86汇编程序设计第一次实验作业MASM编程环境将 MasmForDOSbox2022.rar 中的整个文件夹解压至目录下,并通过安装程序安装 DOSBox0.74,构建实验环境。
启动 DOSBox 并进入 Masm/BIN 目录进入工作环境,完成 MASM 编程环境的配置。
mount c c:/masmc:cd bindir
程序汇编链接及运行修改样例程序中变量 MY_NAME 的部分使其包含班号学号。
保存后通过 masm <filename> 进行汇编操作:
汇编后使用 link <filename> 指令进行链接操作,生成可执行文件:
最后直接执行文件,得到结果:
DEBUG与跟踪执行使用 DEBUG.EXE 对 程序进行调试执行操作。下面是一些常用指令:
-t:单步执行
-g <addr>:执行到 addr 指向的指 ...
BUAA-SoftwareEngineering-Task3
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务3-机器人激光雷达建图与导航功能实现实验目的
学会使用启智机器人的激光雷达建图与导航功能
实验任务
使用启智机器人的激光雷达完成对仿真实验场景的建图
在建好的地图上进行导航功能
实验内容使用启智机器人的激光雷达完成对仿真实验场景的建图本项目在任务 2 的基础上继续开发。
SLAM 功能:即时定位与地图构建。
将连续的多个位置激光雷达扫描到的障碍物轮廓拼合在一起,就能形成一个比较完整的平面地图。这个地图是一个二维平面上的地图,其反映的是在激光雷达的扫描面上,整个环境里的障碍物轮廓和分布情况。在构建地图的过程中,还可以根据障碍物轮廓的重合关系,反推出机器人所走过的这几个位置之间的相互关系以及机器人在地图中所处的位置,这就同时完成了地图构建和机器人的自身实时定位这两项功能。
ROS 支持多种 SLAM 算法,常用的是 Hector SLAM 和 Gmapping,前者仅依靠激光雷达就能工作,后者需要结合电机码盘里程计等信息,建图的稳定性要更高。
G ...
BUAA-SoftwareEngineering-Task2
本系列文章是 2024 春季学期北航计算机学院本科生课程《软件工程》(嵌入式方向)的实验部分报告,不包含团队大作业项目内容与相关细节
任务2-启智机器人工程的导入与运动控制实验目的
建立启智机器人仿真环境
掌握仿真环境下机器人的运动控制
实验任务
完成启智机器人及仿真环境的环境配置和项目构建
学习 Twist 消息类型并完成机器人的运动控制
实验内容建立启智机器人仿真环境首先在目录中新建一个工作空间
mkdir task2mkdir task2/srccd task2/srccatkin_init_workspace
然后通过 Github 将三个源码仓库同时拷贝进 src 目录中,再安装对应包的依赖项,注意安装依赖项与 ROS 的版本相关(kinetic-16.04,Melodic-18.04,Noetic-20.04)
git clone https://github.com/6-robot/wpr_simulation.gitgit clone https://github.com/6-robot/wpb_home.gitgit clone https://github ...