好的,所以我知道C++,C#,Java和其他一些语言,我决定接下来学习装配,但我觉得我从一开始就碰到了坚固的砖墙.我只需要有人指出我正确的方向.
以下是问题:
我被告知,从互联网学习装配比从书本学习更好,因为装配取决于你的硬件和书籍大多是过时的.真的吗?
我有一个64位CPU,我正在使用(或至少尝试使用)FASM.我在哪里可以找到必要的文件?
我总是感到困惑,因为我见过的大部分教程都不适合我.那是因为硬件差异吗?我如何找到正确的教程?
我可以在64位计算机上运行x86和x32程序集吗?
能不能请你这么好,给我一个简单的汇编程序(可以在我的电脑上运行),评论中有细分吗?我在我的intel核心i5 CPU上运行64位Windows 10.请.
我已经尝试将代码简化为最低限度,但它仍然无效:
public class MainActivity extends AppCompatActivity {
AudioRecord rec;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rec= new AudioRecord(MediaRecorder.AudioSource.MIC,44100, AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENCODING_PCM_16BIT,8192);
short buff[] = new short[8192];
int read = rec.read(buff,0,buff.length);
System.out.print(read);
}
Run Code Online (Sandbox Code Playgroud)
无论如何,总是返回-3.我错过了什么?
我的任务是计算两组中1D二进制数组之间的汉明距离 - 一组3000个数组和一组10000个数组,每个数组长100个项目(位).这就是在100位长的物体上进行3000x10000高清计算.所有这些都必须在最多十几分钟内完成
这是我提出的最好的
#X - 3000 by 100 bool np.array
#Y - 10000 by 100 bool np.array
hd = []
i=1
for x in X:
print("object nr " + str(i) + "/" + str(len(X)))
arr = np.array([x] * len(Y))
C = Y^arr # just xor this array by all the arrays in the other group simultainously
hd.append([sum(c) for c in C]) #add up all the bits to get the hamming distance
i+=1
return np.array(hd)
Run Code Online (Sandbox Code Playgroud)
它还需要1-1.5小时才能完成.我该如何更快地完成这项工作?
就像标题中那样。代码构建正确,我可以在 VS 中运行它,但是当我转到输出目录时,没有 EXE。另外,如果我像这样更改输出目录: $(SolutionDir)$(Platform)\$(Configuration)\XXX\ 它甚至不会创建 XXX 文件夹。
CLR 已关闭,输出格式设置为 .exe。我检查了 100 次,我正在寻找正确的目录。更改为 debug/release 或 x64/x32 没有帮助。防病毒软件也与此无关。