问题标签 [segment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
163 浏览

c++ - 编译器是否可以在执行期间生成代码来卸载部分代码段?

除了提供在运行时加载/卸载方法或函数的能力的 Dll 概念之外,我想知道编译器是否会说类似这样的话,好的,因为代码的这个特定部分在代码段中占用了大量空间并且是在程序执行期间的这一点之后永远不会再次使用,最好生成一些代码以在程序执行期间到达该特定点后卸载该部分代码段,以便代码段占用的整体空间变得更小。这只是虚构的事情还是可能发生?

0 投票
1 回答
1075 浏览

c# - 如何从 tcp 段构建消息

在 C# 中工作,我使用 SharpPCap 从 winpcap 跟踪中获取片段。

我需要重建该跟踪中发送和接收的所有消息。

在我的情况下,客户端和服务器的 IP 永远不会相同。客户端的端口不一定会改变。

消息使用的协议可能是 HTTP 或我不知道的自定义协议。

这就是我目前的做法:

我的解决方案的问题是客户端连续发送两个请求。我只是将两条消息合二为一。如果我改变

经过

然后,当一条消息在多个 tcp 段之间拆分并且在这些 tcp 段中的至少两个上设置了标志 psh 时,就会出现问题。

我需要一种正确合并段以重建原始消息的方法。我不能依赖通过 TCP 使用的协议。

谢谢!

编辑: 在wireshark中,当你遵循tcp流时,它不一定知道tcp上的协议,但它能够以不同的颜色显示每个请求和响应。它是如何做到的?我正在寻求相同的功能,因为在我的情况下,在流中收到响应之前永远不会有第二个请求。谢谢

0 投票
2 回答
763 浏览

url - Codeigniter:根据 URI 段在循环中加载不同的视图

我有一个从我的模型加载的建筑物列表。这些建筑物在我看来是循环显示的:

控制器

看法

每个构建都有一些可能的“操作”,例如“信息”、“价格”、“颜色”。默认状态显示“信息”。

我希望能够为特定建筑物加载特定动作。

例如,我有一家工厂和一家药店,默认情况下都显示“信息”选项卡。如果我点击药店的“价格”标签,如何显示工厂的“信息”标签和药店的“价格”标签?

我的网址如下所示:

默认一个

场地/建筑物

显示药店的价格

地点/建筑物/价格/药店

也许我应该寻找一个局部视图解决方案,但我真的需要一个建议或解决方案;)

非常感谢你(我也为我的英语不好道歉)

0 投票
0 回答
205 浏览

path - 如何在 DirectX 中轻松地将对象从 A 点拖到 B 点

我必须像 Windows 中的滚动条一样将一个对象从 A 点拖到 B 点,这里的问题是 A 和 B 的 X 或 Y 都不相同,所以运动同时是水平和垂直的- 对角线。

我确实想出了一个简单的算法,它基于帧中的光标位置,更新要拖动的对象的位置。但为此我必须使 cursorX=objectX,然后计算 objectY,反之亦然。这使得运动分别对于水平运动或垂直运动“不那么令人沮丧”。因此,如果对角线靠近水平线,则 cursorX=objectX 的部分使其比 cursorY=objectY 的部分更好,而对于靠近垂直线的对角线“cursorY=objectY”使其成为另一个更好的选择一。这里的问题是我必须对两种类型的对角线都使用通用算法,因为我有星形多边形,并且对象必须能够从任何角落移动到任何角落。

这是我编写的代码,但它似乎并没有“正确”地移动,因为它是视觉上的正确并且对用户来说不那么令人沮丧,我希望它会对这个问题更有意义。我最后所做的,使用了垂直移动和水平移动两种方法并除以 2,所以每个人都很高兴,但是没有成功:

0 投票
2 回答
1406 浏览

c - C Linux 从内存读/写字(段,偏移)

我正在编写一个用于硬件分配的 Linux 引导程序,我知道我需要创建一个函数来从内存读取/写入一个单词。我无法确定我是否在正确的轨道上,任何帮助都会很棒。我会测试这些功能,但目前这对我来说是不可能的,因为我需要先构建核心功能,然后才能将所有东西放在一起。我得到了 get_byte(segment,offset)/put_byte(char,segment,offset) ,它们被我的老师从程序集编码并导出到 C 中验证为工作。

我不确定上述是否正确。我知道 hi 和 low 需要结合起来,可以添加还是我应该简单地做 low & hi 然后返回结果?如果我完全不在基地,请告诉我。offset 是 unsigned short 还是 int 是否正确?

我不知道上面的代码是否接近正确,但这是我最好的猜测。

有人知道解决方案或有任何提示吗?这些功能应该是非常基本的,但我被困住了,需要继续我的任务的真正部分。

更新 (12:46):修复了 put_byte(),如下所述,只接受两个参数是没有意义的,修复了它。我为我的错误道歉。

0 投票
2 回答
262 浏览

c - 无法理解读取系统调用的行为

所以这是我试图运行的代码:

这是我在终端得到的输出

问题 1:当我在读取调用中键入地址 2000 时,地址在read(STDIN_FILENO,(int*)2000,3); 哪里。我认为这是我试图访问的 RAM 的绝对地址。我是对的还是它偏移并被添加到堆栈段基地址。我不知道。该程序没有给我SEGFAULT内存违规,而是给了我Bad address

问题 2:好的,所以当我输入 aslls并且 bash 执行该“lls”的“ls”部分时,代码会崩溃。原因是代码在读取第一个“l”后崩溃,其余的“ls”部分由 bash 执行。但是为什么 bash 正在执行左侧的“ls”部分。为什么 bash 这样做是因为我的代码崩溃了,即使 bash 是它的父进程,它也不应该从我编写的代码打开的文件描述符 (STDIN_FILNO) 中读取。( 我认同)...

谢谢你的时间。

0 投票
6 回答
915 浏览

c - 使用指针作为函数参数时的段前缀

我有一个汇编程序/c 问题。我刚刚阅读了段前缀,例如 ds:varX 等等。前缀对于逻辑地址的计算很重要。我也读过,默认值为“ds”,一旦您使用 ebp 寄存器计算地址,就会使用“ss”。对于代码“cs”是默认值。这一切都说得通。现在我在c中有以下内容:

如果您现在考虑 test-function 的实现......您会在堆栈上获得指向 x 的指针。如果要取消引用指针,首先从堆栈中获取指针值(x 的地址)并将其保存在 eax 中。然后你可以取消引用 eax 来改变 x 的值。但是 c 编译器如何知道给定的指针(地址)是否引用堆栈上的内存(例如,如果我从另一个函数调用 test 并将局部变量的地址作为测试参数推送)或数据段?如何计算完整的逻辑地址?该函数无法知道给定地址偏移量与哪个段相关..?!

0 投票
3 回答
528 浏览

x86 - 段偏移方法是所有 x86 芯片通用的还是只有 8086 通用的?

在 8086 中使用汇编语言编程中的逻辑地址来引用内存。此功能是否适用于所有 x86 芯片,包括现代奔腾微处理器?

0 投票
1 回答
31421 浏览

assembly - 汇编:使用数据段寄存器 (DS)

目前我正在学习 x86 汇编以获得乐趣,我喜欢微控制器编程,所以我熟悉汇编。

目前我一直在寻找这个问题的答案,但似乎找不到...... DS寄存器,我知道它应该指向我程序中的全局数据,但我没有知道它是如何工作的。我正在使用 NASM,在大多数简单的程序中,我看到以下内容:

并且效果很好(即使我省略了粗体代码),但是如何?CPU 会自动加载从 0x0000 开始的全局变量吗?还是我缺少一些内在的东西?

0 投票
1 回答
898 浏览

stack - 可以分配给进程的堆栈段的最大大小是多少?

输出

就在代码崩溃之前,分配的总内存是9520k. 每次我运行它时,我都会得到不同的值,它们都在范围内9000k - 10000k 所以我想知道在 Linux 中可以分配给进程的堆栈段的最大大小是多少。

我注意到的另一件事是

所以每次堆栈段的虚拟地址发生变化。是否每次分配新内存并将旧内存中的内容复制粘贴到新内存位置。