堆栈段(stack segment)通常是指采用堆栈方式工作的一段内存区域。当程序被执行时,程序可能会将其执行的状态加入栈的顶部;当程序结束时,它必须把栈顶的状态数据弹出(pop)。 在采用段式内存管理方式进行程序内存分配的架构中,堆栈段用来存放局部变量和函数返回地址。堆栈段...
2 KB (300 words) - 23:01, 19 April 2019
while(p) { vi(p->data); p=p->next; } printf("\n"); } 堆棧有時候也常用來指代堆棧段。 架构层次上的堆栈通常被用以申请和访问内存。 大多数CPU都有用作堆栈指针的寄存器。 回溯法 递归 深度優先搜尋 Jones: "Systematic Software Development...
11 KB (1,646 words) - 05:19, 19 June 2025
段错误。 术语“分段”在计算中有多种用途;“储存器段错误”是自1950年代以来就一直使用的术语。当有内存保护时,只有程序自己的地址空间是可读的,其中只有堆栈和程序数据段的可读写部分是可写的,而只读数据和代码段是不可写的。因此,尝试读取程序地址空间之外的数据或写入至只读内存段时,会导致储存器段错误。...
14 KB (2,140 words) - 15:41, 16 July 2025
段寄存器保存在堆栈上,并用DS段寄存器中的值替换,于是指令MOV AL会在相同的源数据段和目的数据段之间操作。在返回前,子程序恢复了ES寄存器以前的值。 上面的子程序是一种比较麻烦的拷贝成块数据的方法。若源数据区域和目的数据区域都是处于单个65,536字节的段...
31 KB (3,625 words) - 16:42, 28 April 2025
面向堆栈(stack-oriented)编程,或基于堆栈编程,是依赖于堆栈机器模型来操纵数据和传递参数的编程范型。一些编程语言适合这种描述,著名的有Forth、RPL(英语:RPL (programming language))、 PostScript、BibTeX样式设计语言和很多汇编语言。...
11 KB (1,501 words) - 03:13, 6 May 2025
PostScript (category 面向堆栈编程语言)
堆栈上: 7 下面又是两个符号,它们将把堆栈变成这样(需要注意的是操作仅仅局限在堆栈顶部,下面的元素不受影响): 1 5 7 另外一个运算符sub,从堆栈顶取出两个元素、第二个减去第一个、然后将结果放到堆栈: 4 7 很显然mul同其他两个运算符一样,从堆栈取出两个元素、将它们的乘积放到堆栈: 28...
22 KB (3,380 words) - 23:24, 24 May 2023
0A-0Bh:该处数据指出了运行该程序所需的最小内存,如果小于这个内存,程序将不会被加载执行。 0C-0Dh:该处数据指出了运行该程序所需的最大内存,一般为FFFFh。 0E-0Fh:堆栈段在装入模块中的偏移,如:00E5h 10-11h:SP初始值,如:0080h。即SS:SP=00E5:0080。 14-15h:IP初始值。 16-17h:CS在装入模块中的偏移。...
3 KB (511 words) - 14:00, 13 June 2025
Return-to-libc攻击(缩写:ret2libc),即“返回至C标准库攻击”,是一种电脑安全攻击。这种攻击方式一般应用于缓冲区溢出中,其堆栈中的返回地址被替换为另一条指令的地址,并且堆栈的一部分被覆盖以提供其参数。这允许攻击者调用现有函数而无需注入恶意代码到程序中。 缩写为libc的共享库是C标准函数库,提供...
3 KB (443 words) - 23:43, 23 September 2021
堆栈溢出(英語:stack overflow)在電腦科學中是指使用過多的記憶體时導致呼叫堆疊產生的溢位,也是缓冲区溢出中的一種。堆疊溢位的產生是由於過多的函數呼叫,導致使用的呼叫堆疊大小超過事先規畫的大小,覆蓋其他記憶體內的資料,一般在遞迴中產生。堆疊溢位很可能由無限遞迴(Infinite...
5 KB (435 words) - 06:05, 5 July 2025
edx mov ecx, eax 这段代码将两个数值相加,并存入另一个地址。相似的反汇编字节码如下 0 iload_1 1 iload_2 2 iadd 3 istore_3 在这里,需要相加的两个操作数被放入堆栈,而相加操作就在栈中进行,其结果也被放入堆栈...
10 KB (1,365 words) - 16:21, 14 July 2025
度上构成自预处理器宏,用以帮助做复杂的表格操作。 Lua C API是基于堆栈的。Lua提供压入和弹出最简单C数据类型(整数、浮点数等)进入和离开堆栈的函数,还有通过堆栈操作表格的函数。Lua堆栈稍微不同于传统堆栈,例如堆栈可以直接的被索引。负数索引指示从栈顶开始往下的偏移量。例如−1是在顶部的(...
49 KB (5,527 words) - 22:33, 13 May 2025
段没意义的指令,再在花指令后再加跳转代码,跳转到程序执行数据的入口点上,令程序正常运行。 例: (汇编语言) mov ebp,esp push ebp ;把基址指针寄存器压入堆栈 pop ebp ;把基址指针寄存器弹出堆栈 push eax ;把数据寄存器压入堆栈 pop eax ;把数据寄存器弹出堆栈...
6 KB (1,000 words) - 01:35, 19 July 2022
值。注意,只有在运行稍后说明的 Gflags 命令时才会显示这些值。这些注册表值的设置正确时,CreatorBackTraceIndex 字段将由堆栈跟踪中所用的一个索引值填充。在 MSDN 中搜索 GFlags 文档中的短语“create user mode stack trace database”和“enlarging...
6 KB (907 words) - 09:42, 7 October 2024
安装文件系统。ReactOS利用 Haiku 的 USB 堆栈作为参考,并作为其 USB 支持的基础。 ReactOS的网络堆栈构建在 FreeBSD 中 OSKit 网络堆栈端口的TCP部分,以及内部开发的面向数据包协议(如IP)的实现。后来,lwIP被集成到ReactOS的网络堆栈中。Samba / Samba TNG...
23 KB (2,303 words) - 02:08, 12 May 2025
Wolverine是一个32位堆栈(可通过WinSock Thunk从16位Windows应用程序访问),使其具有优于大多数可用的第三方TCP/IP Windows堆栈的性能。但是,它仅与Windows for Workgroups 3.11兼容,并且缺少对拨号的支持。 Wolverine堆栈是TCP/IP堆栈的早期版本,后来随Windows...
14 KB (2,132 words) - 07:08, 23 July 2024
POP-2 (category 面向堆栈编程语言)
),它扮演了与Lisp中的catch/throw类似的角色。 POP-2对ML的设计有着重要的影响,这来自它的记录结构,这里定义了数据构造子和并以字段名字作为选择子,和它的section ... endsection指令,这是提供了初步模块性支持的一种简单名字空间管理机制,ML后来把它替代为local...
5 KB (547 words) - 19:04, 18 September 2024
HP Saturn (category 堆栈结构机器)
???? ???? ???? ???? ???? ???? ???? ???? ???? aaaa aaaa aaaa aaaa aaaa 字节段 ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ???? ssss bbbb...
20 KB (1,105 words) - 05:17, 22 February 2023
清楚地宣告,或type-inferred语言(例如MUMPS,ML)。 大多数语言还能够在内置的类型基础上组合出复杂的数据结构类型(使用数组,列表,堆栈,文件等等)。面向对象语言(Object Oriented Language,又译作“物件引導语言”)允许程序员定义新的数据类型,即对象(objec...
19 KB (2,439 words) - 02:34, 23 July 2025
Struts 2提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈。 Struts2开发组常被指漏洞修复手法不妥,要么修复后仍有可利用,要么无法修复并长期闲置。 其中包括一个由标记为S2-003的漏洞报告引发了一连...
6 KB (616 words) - 00:28, 25 November 2024
传输层(英語:Transport Layer)在计算机网络中是互联网协议套件与开放系统互连(英语:Open Systems Interconnection)(OSI)网络堆栈中协议的分层结构中的方法的一个概念划分。该层的协议为应用进程提供端到端的通信服务。它提供面向连接的数据流支持、可靠性、流量控制、多路复用等服务。...
4 KB (525 words) - 01:23, 3 July 2025
任务状态段(Task State Segment, TSS)是x86架构电脑上是一个保存任务信息的数据结构,被操作系统内核用于任务管理。以下信息保存在任务状态段中: 寄存器状态 I/O 端口权限 内层堆栈指针 先前的 TSS 链接 如 IA-32 手册所指明,以上所有信息应当保存在 TSS 中的指定位置。...
2 KB (269 words) - 22:16, 4 October 2015
特征,即所有“犬”都共有的特征或行为,例如它的品种、毛皮颜色和吠叫的能力。类可以为程序提供模版和结构。一个类的方法和属性被称为“成员”。 我们来看一段伪代码: 类犬 开始 公有成员: 吠(): 毛色: 私有成员: 品种: 结束...
27 KB (3,763 words) - 00:39, 21 February 2025
(非叶子)MIPS子例程的函数序言将返回地址(在$ra中)推入堆栈。 在O32和N32/N64上,堆栈向下增长,但N32/N64 ABI需要所有堆栈条目64位对齐。帧指针($30)是可选的,实际上很少使用,除非需要在运行时确定函数中的堆栈分配,例如调用了alloca()。...
58 KB (7,839 words) - 23:49, 26 October 2024
IS-IS(RFC 1142)是另一种連結状态路由协议,在考虑TCP/IP模型时适合该层,但是,它是在OSI模型規範堆栈中开发的,它是第2层协议。它不是互联网标准。 TCP/IP模型的連結层通常會与开放系统互连(OSI) 协议中的数据链路层和物理层一起的进行比较。尽管...
6 KB (829 words) - 00:17, 2 April 2022
元数据的电路中很有用,因为它们常常也使用了在结构上更为简单的串行接口。移位寄存器可以被用作一个简单的延迟电路。许多双向移位寄存器可以在并行传输中作为堆栈的硬件实现方式。 串入并出形式的移位寄存器经常与微处理器连接,这样做的原因主要是需要的引脚数多于微处理器能够提供的数量。通过使用移位寄存器,可以只依...
8 KB (1,216 words) - 11:53, 5 July 2025
允许将对需要调用的物件的訊息检查工作从编译期间推迟到运行期间再现场执行。这样一来,可以在编译期间先不明确目标物件的介面(interface)名称、字段(fields),即物件的資料成員(成员变量)、可用方法,然后在运行根据目标物件自身的訊息决定如何处理。它还允许根据判断结果进行实例化新物件和相关方法的呼叫。...
10 KB (1,253 words) - 05:20, 3 July 2025
代的特例),因为函数iter在解决问题时调用了自身。特别地,它使用了尾部递归,一种能被Scheme这样的编程语言完备支持的技巧,因此程序不会占用大量堆栈。 ;; sum : number -> number ;; to sum the first n natural numbers (define(sum...
4 KB (616 words) - 16:28, 15 June 2025
与代码核心业务逻辑关系不那么密切的功能(如日志功能)添加至程序中,同时又不降低业务代码的可读性。 面向方面编程将代码逻辑切分为不同的模块(即关注,一段特定的逻辑功能)。几乎所有的编程思想都涉及代码功能的分类,将各项关注(concern)封装成独立的抽象模块(如函数、过程、模块、类以及方法等),后者...
34 KB (3,389 words) - 21:32, 31 July 2025
若一個程式語言的語法允許用成對的關鍵字包圍一段程式,形成一個結構,這種程式語言稱為有「塊結構」,這類的結構包括用ALGOL 68的if..fi包圍的程式,或是在PL/I中用BEGIN..END包圍的一段程式,或是在C語言中用大括號{...}包圍的一段程式。...
9 KB (1,412 words) - 13:24, 5 July 2025
在基于类编程当中,对象总共有两种类型:类和接口。类包含存储数据的结构和操纵数据的行为,结构是用数据字段描述的,而行为是通过方法定义的。接口是不包含字段的抽象类型,通常定义类必须实现的行为,接口不能实例化而必须被实现。所有的类通过提供结构和行为来实现一个接口。类可以从现存的类继承而来,从而建立一种类层级。...
16 KB (2,156 words) - 06:02, 5 July 2025
早期,广东路东段多是洋行的堆栈。原宝善街的部分则在1870年代前后便成为主要的娱乐业中心。原东正丰街的部分,则有上海第一个公用电话亭,并配有专线直接十六铺。1920年代初,广东路东部则出现了三菱洋行、日清汽船会社等机构,而西段则以商业和居住区为主。1923年1月23日,...
6 KB (689 words) - 04:13, 2 May 2025