栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux内核完全注释中使用到的汇编指令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux内核完全注释中使用到的汇编指令

1.as86相关

int 0x13:参考INT 13H
ah为功能号,当ah=0x02时:从驱动器读取扇区。此时有
输入参数表:

寄存器名称表示的参数
AH0x02
AL读取多少个扇区
CH磁道号
CL扇区号
DH磁头号
DL驱动号
ES:BX读入缓冲区位置

返回参数表:

寄存器名称参数
CF进位标志,如果发生错误,就置位;没有错误就清0
AH返回代码
AL实际读取的扇区数

DL的确定方法:

现在的硬盘会兼容这种寻址方式,并且现在对于INT13 已经进行了扩展。

jnc: 如果CF=0,则跳转。

rep movw :从DS:SI中移动CX个字(word)到ES:DI。

jmpi 段内偏移,段号:表示段间跳转。

2.gnu as相关

lss:可以参考head. S analysis – linux-0.11 analysis notes (V)
以intel汇编的指令格式使用lss应该是:

lss r32,m16:32

表示将一个长指针载入到ss:r32中。其中ss中为段选择符,r32(一个通用寄存器)中为段中偏移地址。m16:32 表示一个内存操作数,这个操作数是一个长指针,由 2 部分组成:16位段选择器和32位偏移量。

out:I/O操作指令,功能为把AL/AX的数据送到IO地址,IO地址如果大于FFH,则地址需要放入DX,要输出字节,默认使用AL寄存器,要输出字,默认使用AX寄存器。 即I/O端口放在dx寄存器中;要输出的数据放在al或ax中。

lea:Load effective address,取有效地址,也就是取偏移地址。lea指令用于把源操作数的地址偏移量传送目的操作数。

AT&T汇编的寻址方式可以参考AT&T汇编的寻址方式

pushfl:参考Flag Instructions。Pushes the eflags register onto the top of the stack。将eflag寄存器压入栈顶。

shl:参见shl 和 shr指令(逻辑移位指令),逻辑左移指令。注意,参考博客中为Intel,不是AT&T。

jb:参见13-ZF标志位,JB和JNB跳转指令。jump when below,注意,参考博客中为Intel,不是AT&T。

loop:参见汇编loop指令及用法解释。每执行一次,cx寄存器减1,直到为0。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/939355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号