mac编译nasm问题汇总

ld: dynamic main executables must link with libSystem.dylib for architecture x86_64 # -lSystem ld a.o -o a -lSystem

May 26, 2020 · 1 min · dingansichKum0

汇编语言种类

汇编语言和CPU息息相关,但是不能把汇编语言完全等同于CPU的机器指令。 不同架构的CPU指令并不相同,如x86,powerpc,arm各有各的指令系统;甚至同一种架构的CPU有几套指令集,典型的如arm除了有32位的指令集外,还有一套16位的thumb指令集。但是作为开发语言的汇编,本质上是一套语法规则和助记符的集合,它可以包容不同的指令集。 如果从CPU体系来划分,常见的汇编有两种:IBM PC汇编和ARM汇编。 IBM PC汇编也就是Intel的汇编,因为IBM 最早推出PC机,后来的体系很多都要和它兼容,所以也使用了相同的汇编语言。ARM压根没考虑过兼容,它的指令集和x86完全是两个体系,所以汇编语言也独立发展出一套。 CPU只是限定了机器码,作为开发语言的汇编,其实还和编译器息息相关。汇编语言出现的早,没有像C语言一样定义出标准,所以编译器的厂商各搞一套。到现在,最有名的也是两家:MASM和GNU ASM。 前者是微软的,只支持x86,用在DOS/Windows平台中;后者是开源产品,主要用在Linux中,基本上支持大部分的CPU架构。这两者的区别在于伪指令的不同,伪指令是用来告诉编译器如何工作的,和编译器相关,和CPU无关。 其实汇编的编译相当简单,这两套伪指令只是符号不相同,含义是大同小异,明白了一种,看另一种就很容易了。 CPU体系分类 IBM PC汇编 ARM汇编 汇编格式分类 Intel格式 windows平台常见,后者最早由贝尔实验室推出,用于Unix中 AT&T格式 GUN汇编器的缺省格式 GNU的汇编器和调试器gdb对这两种格式都支持,可以随便切换。MASM只支持Intel格式。Intel格式和AT&T格式的区别只是符号系统的区别,这与x86和arm的区别可不一样,后者是CPU体系的区别。 内嵌汇编 用于C语言和汇编语言混合编程的,所以和编译器也关系紧密。 GNU的内嵌汇编 (不是很容易看懂,需要专门学习) MASM的内嵌汇编 (MASM的内嵌汇编和普通汇编的区别则不大)

May 22, 2020 · 1 min · zakudriver

docker部署mysql问题汇总

docker-compose 配置 version: '3' services: # mysql blog_mysql: image: mysql restart: always ports: - '3306:3306' environment: - MYSQL_ROOT_PASSWORD=xxxx volumes: - '/data/mysql:/var/lib/mysql' docker 安装完mysql 后客户端无法访问 进入镜像中的mysql docker exec -it container_id /bin/bash 登录mysql mysql -u root -p 修改root账号, 可以通过任何客户端连接 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

May 9, 2020 · 1 min · zakudriver

flex宽度失效

.flex { flex-shrink: 0; }

April 16, 2020 · 1 min · zakudriver

canvas-drawImage

context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height); img 规定要使用的图像, 画布或视频. sx 可选. 开始剪切的 x 坐标位置. sy 可选. 开始剪切的 y 坐标位置. swidth 可选. 被剪切图像的宽度. sheight 可选. 被剪切图像的高度. x 在画布上放置图像的 x 坐标位置. y 在画布上放置图像的 y 坐标位置. width 可选. 要使用的图像的宽度.(伸展或缩小图像) height 可选. 要使用的图像的高度.(伸展或缩小图像)

March 29, 2020 · 1 min · zakudriver