20233808《Linux内核原理与分析》第二周作业

任务一:阅读学习教材第1,2章

学习知识点:

Linux内核使用的汇编格式是AT&T

2.2.1x86 CPU的寄存器

8086CPU有14个寄存器分为通用寄存器、控制寄存器和段寄存器三种类型。

通用寄存器又分为数据寄存器、指针寄存器和变址寄存器。AX、BX、CX、DX为数据寄存      器;SP和BP为指针寄存器;SI和DI为变址寄存器。

控制寄存器分为指令指针寄存器和标志寄存器,分别为IP和FLAG。

段寄存器主要有CS、DS、SS、ES。

x86-64有16个64位寄存器,分别是 RAX 、 RBX 、 RCX 、RDX 、RSI 、RDI 、RDP、RSP 以及新增的R8~R15。这些寄存器在编译器中的基本使用约定为:
RAX 作为函数返回值使用。
RSP 栈指针寄存器,指向栈顶。
RDI 、RSI 、RDX 、RCX 、R8、R9用作函数参数,依次对应第1~6个参数。
RBX 、RBP 、R10、R11、R12、R13、R14、R15用作数据存储。

2.2.2 基本汇编语言语法规则:

  1. 指令:汇编程序由一系列指令组成,每个指令对计算机执行特定的操作。指令通常以助记符表示,如mov、add等其中几个重要的指令还有call(函数调用)、ret(函数返回)、pushl(将数据推入栈)、popl(从栈中弹出数据)。

  2. 操作数:指令通常包括一个或多个操作数,操作数是指令操作的数据。操作数分为寄存器、存储器、立即数。

  3. 寄存器:表示某个寄存器中保存的值,如%rax、%eax。

  4. 存储器:根据计算出的有效地址来访问存储器的某个未知。汇编语言可以用于读取和写入内存中的数据,内存地址通常用方括号表示。

  5. 寄存器寻址:所谓寄存器寻址就是操作的是寄存器,不和内存打交道。

  6. 立即寻址:用一个$开头后面跟一个数值。直接寻址没有$。

  7. 间接寻址:寄存器加个小括号。

任务一过程中向chatgpt提问:

https://chat.openai.com/share/b994be38-4401-461c-a213-07bafd36b711

任务二:已完成实验楼实验一汇编语言编写

任务二过程中向chatgpt的提问:

https://chat.openai.com/share/b4c4d430-79f4-4768-8a20-19c6cd3edeec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值