小编Lor*_*ndy的帖子

现代x86中'指令前缀'的含义是什么

为了理解Bulldozer为什么不合格,我一直在关注Agner Fog的优秀微架构书,在第178页的推土机下它有这一段.

最多三个前缀的指令可以在一个时钟周期内解码.对于具有三个以上前缀的指令,会有非常大的惩罚.具有4-7前缀的指令需要额外14-15个时钟周期才能进行解码.带有8-11前缀的指令需要额外增加20-22个时钟周期,带有12-14前缀的指令需要额外增加27-28个时钟周期.因此,不建议使用超过三个前缀来延长NOP指令.此规则的前缀计数包括操作数大小,地址大小,段,重复,锁定,REX和XOP前缀.三字节VEX前缀计为一,而两字节VEX前缀不计.转义码(0F,0F38,0F3A)不计算在内.

当我搜索前缀时,我的技术定义远远超出了我的能力.或者,建议每条指令限制为4条,这与上述摘录相冲突.

因此,简单来说,有人可以解释他们是什么/做什么以及为什么你可能想要将多达14+用于指令而不是分解?

x86 assembly prefix

14
推荐指数
2
解决办法
3080
查看次数

Do Vectors会自动调整大小吗?

我很抱歉,我问这样一个初学者问题,但我在网上发现了相互矛盾的信息.我会在大学问,但直到明年2月.

Do Vectors会自动调整大小吗?或者您需要定期检查当前大小,并在需要更多空间时调整大小.它看起来是自动调整大小,但我不确定这是一个功能还是编译器挥动魔杖.

c++ vector

7
推荐指数
2
解决办法
1万
查看次数

相对寻址错误 - Mac 10.10

我正在尝试学习如何编写汇编代码,我是在http://gnu.mirrors.pair.com/savannah/savannah//pgubook/ProgrammingGroundUp-0-8.pdf的帮助下完成的.这是一个很好的资源,我正在尝试以Macho64格式为我的Mac编写64位代码.

我遇到了绝对和相对寻址的麻烦.

这是我的代码:

    DEFAULT REL
;PURPOSE:   This program finds the maximum number of a set of data items
;

;VARIABLES: The registers have the following uses
;
;   rbx - Holds the index of the data item being examined
;   rdi - Largest data item found
;   rax - Current data item
;
;   The following memory locations are used:
;
;   data_items - contains the item data. A 0 is used to terminate the data
;

global …
Run Code Online (Sandbox Code Playgroud)

macos assembly x86-64 nasm

4
推荐指数
1
解决办法
250
查看次数

如何阻止Scons在共享库的前面添加lib

我一直在玩OSX上的Scons,我正在尝试创建一个共享库(.dll,.so,.dylib).

这一切都完美无缺,除了一件让我烦恼的事情,它在图书馆名称前添加了"lib".例如,我选择名称WL,它变成libWL.dylib.我无法弄清楚为什么Scons这样做,这让我很生气.

在此输入图像描述

我使用的代码是:

# -*- coding: utf-8 -*-
import os
SourceList = ['Window.cpp']
env = Environment(ENV = os.environ)

#Libraries we are using
Targets = 'WL'
libraries = ['SDL2']

#Paths to the libraries and include paths
Paths = ['/usr/local/lib', '/usr/local/include']

Export('SourceList env libraries Paths Targets')
SConscript('src/SConscript', variant_dir='bin', duplicate=0)
Run Code Online (Sandbox Code Playgroud)

Import('SourceList env libraries Paths Targets')
SharedLibrary(target = Targets,source = SourceList,LIBS = libraries, LIBPATH=Paths)
Run Code Online (Sandbox Code Playgroud)

我不太了解共享库的工作方式,所以我不知道在编译后是否可以更改名称.但我希望它不要添加字母

c++ macos dll dylib scons

1
推荐指数
1
解决办法
911
查看次数

Rust Alpha和Old_IO

我一直在研究学习Rust,因为它似乎是一种很酷的即将到来的语言,但我有一些担心,Alpha显然是功能完整,而std库网络代码都在'old_io'.

我一直想要从书中做一个小MUD,我想这两个将是齐头并进的.

我的问题是这个,网络代码被移动了,我找不到它,是不是将old_io替换为其他东西,或者是刚刚进入的新IO,我是一个没有看到它的白痴?

无论如何我会继续它,我只是找不到答案.

beta networking alpha rust

1
推荐指数
1
解决办法
162
查看次数

标签 统计

assembly ×2

c++ ×2

macos ×2

alpha ×1

beta ×1

dll ×1

dylib ×1

nasm ×1

networking ×1

prefix ×1

rust ×1

scons ×1

vector ×1

x86 ×1

x86-64 ×1