- 博客(26)
- 资源 (9)
- 收藏
- 关注
原创 Linux32位系统 eflags寄存器介绍
EFLAGS寄存器是x86架构中重要的状态寄存器,包含运算状态标志(CF、ZF、SF、OF等)、控制标志和系统标志。文章详细介绍了主要标志位的功能,并提供了一个汇编演示脚本,通过加法、减法等操作展示标志位的设置。还讲解了如何使用gdb观察EFLAGS值变化,以及条件跳转指令与标志位的关联。最后总结了EFLAGS在循环控制、条件判断和错误检查中的实际应用。演示脚本可通过编译运行,预期输出"结果为零"、"进位发生"等状态信息。
2025-07-11 19:54:01
546
原创 地址总线简单介绍
地址总线是CPU与内存之间的一组并行导线,用于传输内存地址信息。其宽度由导线数量决定,如32位总线有32根导线,每根传输1位信息(高/低电平)。总线宽度直接影响寻址能力:32位总线可访问4GB内存(2^32地址),64位总线理论支持16EB(2^64地址)。总线系统还包括数据总线(传输内容)和控制总线(读写信号)。早期Intel 8086采用20位总线(1MB寻址),现代x86-64处理器使用64位总线(实际48位)。地址总线宽度是决定计算机内存上限的关键硬件特性。
2025-07-11 19:51:47
785
原创 简单介绍一下什么是32位寻址、 64位寻址
寻址是指 CPU 通过地址来访问内存的能力。地址就像门牌号,告诉 CPU 要访问哪个内存位置。32位寻址和64位寻址地址总线的宽度(硬件层面)虚拟地址空间的大小(软件层面)指针/地址寄存器的位数(寄存器层面)CPU 能够直接访问的内存范围(系统层面)
2025-07-11 19:47:39
1071
原创 Linux 32位汇编 一个例子 介绍EBP(基址指针)
摘要: EBP(基址指针)在x86汇编中用于维护函数栈帧,其核心作用包括保存当前栈基址、访问函数参数/局部变量(如8(%ebp)访问第一个参数)以及规范栈结构。示例代码展示了EBP的典型用法:函数调用时保存旧EBP→建立新栈帧→通过固定偏移访问参数→恢复栈结构。GDB调试可验证EBP/ESP变化。EBP的稳定性(相比动态变化的ESP)使其成为函数调用标准约定的关键,通过固定基址实现高效数据访问。
2025-07-11 19:43:30
508
原创 Linux 32位 一个小例子加深对 ECX、EDX 的理解,以及和EAX、EBX寄存器的区别
x86寄存器专题:ECX计数器与EDX数据寄存器的特殊用途 在x86架构中,ECX和EDX虽然都是通用寄存器,但具有以下关键特性: ECX专用作计数器: 循环指令(LOOP)和重复前缀(REP)强制使用ECX作为计数器 字符串操作指令(如REP MOVSB)必须配合ECX使用 EDX专用作数据寄存器: 乘法/除法指令强制使用EDX存储高位结果 I/O端口操作依赖EDX存储端口号 实际应用示例: 字符串复制必须使用ECX计数 64位乘法结果必须存储在EDX:EAX组合 系统调用参数通过EBX/ECX/EDX传
2025-07-11 19:36:52
576
原创 Linux 32位系统 一个小例子加深对寄存器 ecx 和 edx的理解
这篇汇编教程演示了如何使用ecx、edx和esp寄存器进行基本运算和栈操作。通过一个简单的示例程序,展示了寄存器初始赋值、加法运算、数据压栈和弹栈的过程。文章详细说明了如何使用gdb调试器单步执行程序,观察各寄存器值的变化情况,包括ecx、edx的算术运算,以及esp在栈操作时的地址变化。最后解释了关键指令的作用,并建议通过单步调试来加深对寄存器操作的理解。该教程适合初学者直观理解x86汇编中寄存器的基本使用方式。
2025-07-11 19:31:43
267
原创 Linux 32 位汇编 int $0x80 简单介绍
在32位x86架构的Linux系统中,int $0x80是标准的系统调用指令,专门用于用户程序向内核发起请求。执行该指令时,CPU会触发0x80号中断,跳转到内核的系统调用处理程序。用户程序需将系统调用号存入EAX寄存器,参数存入EBX、ECX等寄存器。其他中断号如0x21或0x10未被Linux用于系统调用,而是保留给DOS或BIOS使用。虽然现代系统可能使用sysenter或syscall指令,但int $0x80仍是32位Linux汇编中最经典的系统调用方式。
2025-07-11 19:26:46
687
原创 linux 32位 系统寄存器简单介绍
本文介绍了x86架构CPU的主要寄存器及其用途,包括通用寄存器(eax、ebx、ecx、edx)、指针/变址寄存器(esi、edi、ebp、esp)、指令指针(eip)、标志寄存器(eflags)和段寄存器(cs、ds等)。这些寄存器在数据运算、内存操作、程序控制和分段管理中发挥关键作用。文中通过示例演示了寄存器在指令执行过程中的变化,并总结了各类寄存器的核心功能,为理解x86汇编编程提供了基础参考。
2025-07-11 17:57:13
763
原创 linux cpu 和 寄存器简单介绍
摘要 CPU执行程序的核心机制围绕程序计数器(EIP/RIP)和寄存器展开: EIP始终指向下一条指令地址,CPU按"取指令-执行-更新EIP"循环工作 寄存器作为临时存储(如EAX/EBX)存放运算数据和状态 跳转指令会直接修改EIP,改变执行流程(如jmp跳过代码) 形象比喻:EIP是自动翻页的书签,寄存器是手写便签 典型执行示例: mov→add→mov→jmp过程中,EIP从0x1000逐步推进,遇到jmp后直接跳转至目标地址,后续指令被跳过。
2025-07-11 17:54:08
539
原创 linux 了解汇编语言的编译过程
本文详细介绍了从汇编源码到可执行文件的完整编译链接流程。重点演示了如何使用as汇编器和ld链接器处理32位汇编程序(hello.s),并通过readelf、objdump等工具分析目标文件和可执行文件的内部结构。文章展示了ELF文件格式的关键组成部分,包括ELF头、段表、重定位信息、符号表等,并特别对比了目标文件(.o)与可执行文件在重定位、入口地址等方面的差异。通过实际命令输出解析,直观呈现了编译链接过程中地址解析、符号绑定等关键技术细节。
2025-07-11 15:46:36
853
原创 Linux 虚拟内存 分页原理介绍
虚拟内存是现代操作系统的核心机制,它通过地址空间抽象和分页系统实现进程隔离与内存共享。虚拟内存将物理内存和磁盘空间统一管理,为每个进程提供独立的4GB虚拟地址空间(32位系统)。系统采用多级页表结构,由MMU硬件配合页表完成虚拟地址到物理地址的转换,并通过TLB缓存提升性能。当访问未加载的页时触发缺页异常,操作系统负责调入所需页面。Linux系统可通过/proc文件查看进程内存布局。虚拟内存的优势包括内存保护、共享库支持、写时复制以及内存扩展能力,实现了物理内存资源的透明管理和高效利用。
2025-07-09 17:53:56
924
原创 Lunix ASLR(Address Space Layout Randomization,地址空间布局随机化)
ASLR 安全机制概述 ASLR(地址空间布局随机化)是一种关键安全技术,通过随机化程序内存布局(栈、堆、共享库等)来防御缓冲区溢出等攻击。其核心特点是每次运行程序都生成不同的内存地址布局,使攻击者难以预测关键地址位置。演示显示启用ASLR时,代码段、堆栈等地址每次运行都不同,而禁用时则完全固定。实现上需要编译支持(如PIE)和运行时内核配合。ASLR有效提高了ROP等攻击难度,但攻击者可能结合信息泄露突破防护。现代系统通常默认启用完全ASLR(级别2),显著提升了系统安全性。
2025-07-09 16:58:00
846
原创 java Integer初始化缓存设计
1、大家都知道在不使用new生产一个integer对象的时候在取值为 -128 到127之间生产的对象都是相等的。Integer i=12;Integer j=12;i==j 返回true。2解析一下代码看一线jdk中是怎么实现的。首先在Integer中有这么一个内部类 /** * Cache to support the object identity semant
2023-01-11 10:24:07
736
1
原创 DUBBO 报错 Failed to check the status of the service
不知道为什么消费者不能调用,报错如下:Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ISerivceApi': FactoryBean threw exception on object creation;
2023-01-10 19:47:19
5700
1
原创 window7 密码丢失找回
1、使用ubuntu usb u盘安装启动到试用界面。2、找到window7 系统安装的位置,在 ” x:\Windows\system32\ “ 目录下面吧 osk.exe 修改为 cmd.exe, cmd.exe 修改为osk.exe.退出重启系统。3、到Win7登录窗口,单击屏幕左下角的“轻松访问”图标,然后在弹出的窗口勾选“启动屏幕键盘”,单击“确定 ”,弹出cmd窗口。4、先
2016-07-11 15:57:14
334
1
原创 HIBERNATE 报 Association references unmapped class
[main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLDialectException in thread "main" org.hibernate.MappingException: Association references unmapped class: com.ha
2016-06-02 18:37:05
590
1
原创 链接局域网内HP打印机
1、首先在链接打印机的电脑上把打印机设为共享,如图2,在局域网上的其他电脑上安装同型号打印机的驱动程序,登陆共享打印机的电脑,如图。点击打印机图标,表示此打印机安装完成,就可以共享链接在局域网中的打印机了。
2016-05-18 14:36:40
606
1
原创 建行支付网关实现DEMO
1、实现和建行的网关通信需要有建行商户号才可以,使用商户号登陆到建行商户后台可以生产一个商户秘钥,商户秘钥的后30位作为加密时的PUB参数商户证书下载地址和登陆地址http://www.ccb.com/fj/20110310_1299746353.html2、代码实现这里我写了两个jsp实现index2.jsp 建行订单表单页
2016-02-15 15:37:12
1626
1
原创 Tomcat6或7设置单项认证或是双项认证
参考:java的加密解密艺术一书单项认证配置方式: protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" maxThreads="150" scheme="https
2015-12-14 10:52:56
292
1
原创 PL/SQL 链接 ORACLE 11G
工作需要在Linux服务器上安装oracle11g,发现远程过去通过命令行执行SQL命令比较麻烦,想在自己的window系统上安装PL/SQL软件链接到ORACLE。开始以为很简单,发现一直配置不上。看了一些文章都不是很清楚。但最终还是配置成功。首先Linux上安装oracle,这个过程很容易图形界面一直下一步基本就能完成。在安装完oracle后需要设置监听,可以使用图形界面,
2015-08-21 17:18:17
391
1
原创 FireFox语言包安装
FireFox最新版语言包下载dizhi最新版(latest/)Linux:http://releases.mozilla.org/pub/mozilla.org/firefox/releases/latest/linux-i686/xpi/zh-CN.xpiwindows:http://releases.mozilla.org/pub/mozilla.org/firefox/
2014-08-06 15:22:32
551
1
原创 android 网络类型
在android中对网络的定义放在了TelephonyManager.java文件中下面是其中的一些代码所有的网络类型 /** Network type is unknown */ public static final int NETWORK_TYPE_UNKNOWN = 0; /** Current network is GPRS */ pub
2013-11-15 15:24:51
1025
1
原创 Android 基于位置服务的基本知识
1、在android平台使用位置服务需要使用位置管理器,获得方法如下:String locationService =Context.LOCATION_SERVICE;LocationManager locationManager=(LocationManager)getSystemService(locationService);android中为了安全机制在使用位置管理器的时候需要
2013-10-15 13:16:46
74
1
第十三章 开发JPA应用.pdf_刘长炯著
2014-10-09
jPOSGuide-161.pdf
2017-01-23
智能工厂实施建设解决方案
2023-01-28
商业银行反洗钱数据分析系统建设
2023-01-28
jmxtools-1.2.1.jar+jmxri-1.2.1.jar+jms-1.1.jar
2016-09-19
Mybatis+Spring+springmvc
2015-06-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅