-
算法下午茶系列
收藏程序员闲暇时光阅读
最近更新文章
算法下午茶系列-重温汇编(6)[理解AT&T汇编的节]
首先,我们看一下AT&T汇编各段的意义
节
含义
.text
已编译程序的机器代码
.rodata
只读数据,如pintf和switch语句中的字符串和常量值
.data
已初始化的全局变量
.bss
未初始化的全局变量
.symtab
符号表,存放在程序中被定义和引用的函数和全局变量的信息
.rel.text
当链接器吧
算法下午茶系列-重温汇编(5)[内联汇编(2)]
#include <stdio.h>
int main(void){
int xa=6;
int xb=2;
int result;
//使用占位符,由r表示,编译器自主选择使用哪些寄存器,%0,%1。。。表示第1、2。。。个变量
asm volatile(
"add %1,%2\n\t"
&qu ...
算法下午茶系列-重温汇编(7)[win32汇编]
在WINDOWS系统能用到汇编的机会不多,基本都可以用C或C++代劳,更何况现在MICROSOFT的Visual Studio 系列工具非常强大,WINDOWS下的开发已经在向.NET方面发展,实际调用WINDOWS SDK的机会也不多。 WIN32汇编编写窗口程序需要调用大量的WINDOWS 的API,而且提供了高级语言才有的条件语句和循环语句,难度相对于LINUX下的AT& ...
算法下午茶系列-重温汇编(4)[基址与变址]
.section .data
myvalue:
.byte 67,68,69,70,0
mygs:
.asciz "%c\n"
.section .text
.globl main
main:
#基地址(偏移地址[必须为寄存器],数据元素变址,数据元素长度[必须为寄存器],)
#基地址+偏移地址+数据元 ...
算法下午茶系列-重温汇编(3)[调用C库函数]
首先我们先用汇编编写一个helloworld,注意我们直接在汇编代码中调用C语言的printf函数将"hello,world\n" 输出在屏幕上。
.section .data
output:
.asciz "hello,world\n"
.section .text
.global main
main:
push ...
算法下午茶系列-初探虚拟机(1)[逆波兰表达式]
use feature "switch";
#构造运算符优先级数据
%priority_of_operation=(
'+'=>1,
'-'=>1,
'*'=>2,
'/'=>2,
'('=>0,
')'=>0
);
#待计算的表达式
$prepare_exec="5.98+((1+2211.12)*4)-3&q ...
算法下午茶系列-重温汇编(2)[调试汇编]
Linux 平台的标准汇编器是 GAS,它是 GCC 所依赖的后台汇编工具,通常包含在 binutils 软件包中,
--gstabs 告诉汇编器在生成的目标代码中加上符号表,我们首先完成汇编:
as -gstabs -o hello.o hello.s
汇编器产生的目标代码必须经过链接器的处理才能生成可执行代码 ,Linux 使用 ld 作为标准的链接程序,它同样也包含在 binutil ...
算法下午茶系列-重温汇编(1)[AT&T汇编基础]
汇编在LINUX系统下的意义远远大于WINDOWS系统,LINUX内核部分代码就是汇编编写的。然后,绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 Intel 风格的。但在 Unix 和 Linux 系统中,更多采用的还是 AT&T 格式,两者在语法格式上有着很大的不同,因此应对AT&T汇编应有一个基本的了解和熟悉。 ...
机器学习-手写和本机数字识别-K均值和欧氏距离
一、欧氏距离
二维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2 )
三维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )
n维空间的公式
n维欧氏空间是一个点集,它的每个点 X 可以表示为 (x[1],x[2],…,x[n]) ,其中 x[i](i = 1,2,…,n) 是实数,称为 X 的第i个坐标 ...
机器学习-K均值算法与欧氏距离进行图片分类
一、欧氏距离
二维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2 )
三维的公式
ρ = sqrt( (x1-x2)^2+(y1-y2)^2+(z1-z2)^2 )
n维空间的公式
n维欧氏空间是一 ...
机器学习-塔尼莫特系数计算图片相似性
"塔尼莫特"系数
事实上,这个代数形式在计算Jaccard系数时以位向量作为被比较的集的机制首次被塔尼莫特定义。虽然公式扩展到一般的向量
'计算相似度,使用"塔尼莫特"系数公式
Dim tzbj_fz_2 As Double = 0.0
Dim tzbj_fma_2 As Double = 0 ...
机器学习-余弦相似度计算图片相似性
'计算相似度,使用余弦公式
Dim tzbj_fz_2 As Double = 0.0
Dim tzbj_fma_2 As Double = 0.0
Dim tzbj_fmb_2 As Double = 0.0
For myii As Integer = 0 To pic1tz.GetUpperBou ...