随笔分类 -  汇编

摘要: 阅读全文
posted @ 2019-04-05 21:50 jadeshu 阅读(503) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-04-05 01:47 jadeshu 阅读(579) 评论(0) 推荐(0)
摘要:1、物理地址:就是物理内存真正的地址,相当于内存中的每个存储单元的门牌号,具有唯一性。CPU最终都要以物理地址去访问内存,只有物理地址才是内存访问的终点站。 在实模式下,{段基址+段内偏移地址}经过段部件的处理,直接输出的就是物理地址,CPU可以直接用此地址访问内存。 2、线性地址: 在保护模式下: 阅读全文
posted @ 2019-04-04 20:12 jadeshu 阅读(749) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-03-08 19:58 jadeshu 阅读(291) 评论(0) 推荐(0)
摘要:立即数寻址方式:MOV AX,0102H 源操作数是数 寄存器寻址方式 : MOV BX,AX 源操作数是寄存器。这些寄存器有:16位的AX BX CX DX SI DI SP BP 8位的AH AL BH BL CH CL DH DL 直接寻址方式 :MOV AX,[2000H] 源操作数是地址, 阅读全文
posted @ 2019-03-08 19:56 jadeshu 阅读(2168) 评论(0) 推荐(0)
摘要:X86 1.当写一个段寄存器时(如MOV ES,AX),只给定了16位,段寄存器有96位,那么另外80位从何处而来?这16位数能随便写吗? 段寄存器学习 答:当写一个段寄存器时,CPU会根据AX的值来决定查取GDT表/LDT表,因此AX不能随便写。 阅读全文
posted @ 2017-12-13 22:19 jadeshu 阅读(198) 评论(0) 推荐(0)
摘要:段寄存器 一、访问GDT 当TI=0时表示段描述符在GDT中,如上图所示: 段描述符(64位) ①先从GDTR寄存器(48位,其中前32位base+16位长度)中获得GDT基址。 ②然后再GDT中以段选择器(ES,DS等等)高13位位置索引值得到段描述符。 ③段描述符符包含段的基址、限长、优先级等各 阅读全文
posted @ 2017-06-01 23:36 jadeshu 阅读(1314) 评论(0) 推荐(0)
摘要:一、段寄存器有哪些? 通常我们用汇编读写某一个地址时,如下 mov dword ptr ds:[0x123846],eax 这时我们把eax的值往地址去写,写的地址是: ds.base+0x123846 段寄存器有ES、CS、SS、DS、FS、GS、LDTR、TR共8个。 二、段寄存器的结构 图形表 阅读全文
posted @ 2017-05-31 00:09 jadeshu 阅读(1476) 评论(0) 推荐(0)
摘要:一、规定 1.立即数不能作为目的操作数,如mov 110H,AX 2.立即数不能直接传给段寄存器,如mov DS,110H 2.两个操作数不能同时为段寄存器,如mov ES,DS 3.两个操作数不能同时为存储单元,如mov [0x1245],[0x1312] 5.代码段寄存器CS不能为目的操作数,但 阅读全文
posted @ 2017-05-20 17:07 jadeshu 阅读(1720) 评论(0) 推荐(0)
摘要:一.CALL 例如: 004013D9 CALL 00401C4C //ESP = 0060F9C8 004013DE 相当于 sub esp,0x4; //ESP = 0060F9C4 //把CALL下一个指令IP保存栈顶中 mov dword[esp],0x004013DE jmp 0x0040 阅读全文
posted @ 2017-04-20 23:09 jadeshu 阅读(240) 评论(0) 推荐(0)
摘要:cs:07C0 ip:0000 1.用nasm编译为二进制文件bin(我这里编译文件大小为68b) 2.扇区大小为512字节,即把后面进行填充为0 ,末尾填充0x55 0xAA 3.即屏幕显示hello 最后屏幕输出显示 别的颜色实验 屏幕显示截图 阅读全文
posted @ 2017-03-16 23:41 jadeshu 阅读(710) 评论(0) 推荐(0)