使用王爽著的《汇编语言》开始自己的汇编之旅,遇到一些疑惑,记录下来,看以后会不会解惑。 1 assume cs:codesg,ds:datasg 2 datasg segment 3 db 'ibm ' 4 db 'dec ' 5 db 'dos ...
分类:
其他好文 时间:
2015-02-02 17:19:35
阅读次数:
147
http://acm.neu.edu.cn/hustoj/problem.php?id=1492题意: 有n个盒子 现在有两种操作: 1 在序号为x的倍数的盒子里放y个球 2 查询序号x到y的盒子里的球的总数思路: 当时以为线段数 而且没...
分类:
其他好文 时间:
2015-02-01 14:39:02
阅读次数:
152
由于使用as和ld来编译链接汇编程序,在使用C库的时候比较麻烦,需要输入比较多的指令,所以使用gcc进行编译链接。由于书中内容是32位汇编程序,但是机器使用的是64位操作系统,自带的gcc也是64位的,导致编译生成的程序,一运行就会Segment Fault。经过查询之后,发现是调用printf.....
分类:
其他好文 时间:
2015-01-31 21:51:57
阅读次数:
724
段内的调用/跳转的特性:不改变 CS,也就是不用重新加载 code segment descriptor,当然也就不需要进行权限的检查,但是这里需要做 segment 的 limit 检查,检测到越 segment limit 会产生 #GP 异常。由于在段时调用,所以使用 call offset ...
分类:
其他好文 时间:
2015-01-31 11:54:48
阅读次数:
170
对于 code segment 的访问,都知道是使用 CS selector register 。对于 data segment 的访问,则是根据指令或内存的寻址方式来决定使用哪个 selector registers。1、对于串操作指令来说,在缺省的情况下:源串引用 DS 作为参考对象,目标串引用...
分类:
其他好文 时间:
2015-01-31 11:54:02
阅读次数:
229
基于 stack 的访问都将引发 stack 访问控制检查,对于 stack 的访问控制比一般的 data segment 访问检查要严格。用简单的式子表达为:if (RPL == DPL && CPL = DPL) { /* 通过检查,允许访问,加载 descriptor 进入 SS */ }.....
分类:
其他好文 时间:
2015-01-31 11:53:41
阅读次数:
169
这里的 data segment 访问控制针使用对 DS、ES、FS 以及 GS selector register 进行访问,不包括 SS selector register,stack segment 访问与一般的 data segment 有些差别。 以 DS 为例代表所有的 data se....
分类:
其他好文 时间:
2015-01-31 11:52:19
阅读次数:
192
直接调用/跳转的形式是: call / jmp selector:offset 这里的 selector 是 code segment selector 直接使用 selector 来索引 code segment,这将引发 CS 的改变,code segment descriptor 最终会被.....
分类:
其他好文 时间:
2015-01-31 11:51:12
阅读次数:
184
当程序中使用指令 call / jmp,以及通过 int 引发中断例程的执行,这将都是对目标的 code segment 进行访问,当通过权限的检查后程序将会跳转到目标的 code segment 进行执行。 在 code segment 的访问过程中涉及到权限级别的改变,stack 的改变等问题。...
分类:
其他好文 时间:
2015-01-31 11:50:58
阅读次数:
202
[背景知识]MTU: Maxitum Transmission Unit 最大传输单元MSS: Maxitum Segment Size 最大分段大小PPPoE: PPP Over Ethernet(在以太网上承载PPP协议)MTU1500字节: 以太网.1492字节: PPPoE.1472字节: ...
分类:
其他好文 时间:
2015-01-30 17:01:33
阅读次数:
211