ASCII编码对照表(查阅)

 ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。   ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符,其中33个字符无法显示(这是以现今操作系统为依归,但在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bit符号),且这33个字符多数都已是陈废的控制字符,控制字符的用途主要是用来操控已经处理过的文字,在33个字符之外的是95个可显示的字符,包含用键盘敲下空白键所产生的空白字符也算1个可显示字符(显示为空白)。 ASCII控制字符 二进制 十进制 十六进制 缩写 可以显示的表示法 名称/意义 0000 0000 0 00 NUL ␀ 空字符(Null) 0000 0001 1 01 SOH ␁ 标题开始 0000 0010 2 02 STX ␂ 本文开始 0000 0011 3 03 ETX ␃ 本文结束 0000 0100 4 04 EOT ␄ 传输结束 0000 0101 5 05 ENQ ␅ 请求 0000 0110 6 06 ACK … Read more

ARM-SUB

substract without carry,不带进位的减法  语法: SUB{S}{cond} {Rd}, Rn, Operand2 SUB{cond} {Rd}, Rn, #imm12 ; Thumb, 32-bit encoding only SUB指令从Rn寄存器的值里面减掉Operand2或者imm12. 在某些特殊情况下,可以用一个寄存器减另一个寄存器 

ARM-LDR

作为加载指令  立即偏移: 使用立即偏移量,前置索引立即偏移量,或后置索引立即偏移量加载  语法: LDR{type}{cond} Rt, [Rn {, #offset}] ; 立即偏移 LDR{type}{cond} Rt, [Rn, #offset]! ; 前置索引 LDR{type}{cond} Rt, [Rn], #offset ; 后置索引 LDRD{cond} Rt, Rt2, [Rn {, #offset}] ; immediate offset, doubleword LDRD{cond} Rt, Rt2, [Rn, #offset]! ; pre-indexed, doubleword LDRD{cond} Rt, Rt2, [Rn], #offset ; post-indexed, doubleword PC相对: 加载寄存器,地址是相对PC的一个偏移 语法: LDR{type}{cond}{.W} Rt, label LDRD{cond} Rt, Rt2, label ; Doubleword label是PC相对的表达式 寄存器偏移: 使用寄存器偏移,前置索引寄存器偏移,后置索引寄存器偏移加载 语法: LDR{type}{cond} Rt, [Rn, ±Rm {, shift}] ; register offset LDR{type}{cond} Rt, [Rn, ±Rm {, shift}]! ; pre-indexed ; ARM only LDR{type}{cond} Rt, [Rn], ±Rm {, shift} ; post-indexed ; ARM only LDRD{cond} Rt, Rt2, [Rn, ±Rm] ; register offset, doubleword ; ARM only LDRD{cond} Rt, Rt2, [Rn, ±Rm]! ; pre-indexed, doubleword ; ARM only LDRD{cond} Rt, Rt2, [Rn], ±Rm ; post-indexed, doubleword ; ARM only 寄存器相对: 加载寄存器,地址是相对一个基寄存器的偏移 语法: LDR{type}{cond}{.W} Rt, label LDRD{cond} Rt, Rt2, label ; Doubleword 2.作为伪指令 使用一个32位立即数或地址加载寄存器  语法: LDR{cond}{.W} Rt, =expr LDR{cond}{.W} Rt, =label_expr 使用LCR伪指令时,如果expr的值能被一个有效MOV或MVN指令加载,那么汇编器将使用这条指令; 如果有效MOV或MVN指令无法使用,或者label_expr语法使用了,那么汇编器将把值存放在一个文字池,并且生成一个PC相对的LDR指令从文字池里面读取值。

ARM-B,BL,BX,BLX

B branch,分支,跳转  语法:  B{cond}{.W} label 满足条件跳转到label BL branch with link,带链接的跳转 语法: BL{cond}{.W} label 满足条件跳转到label,并且复制下条指令地址到LR(R14,链接寄存器) BX branch and exchange intruction set,跳转并交换指令集 语法: BX{cond} Rm 满足条件跳转到Rm地址,并且交换指令集,可以根据Rm的bit[0]推导出目标指令集: 如果bit[0]是0,那么处理器跳转到或停留在ARM状态; 如果bit[0]是1,处理器跳转到或停留在Thumb状态; BLX branch with link and exchange instruction set ,带链接的跳转并且交换指令集 语法: BLX{cond}{.W} label BLX{cond} Rm bx和bl指令的组合指令

关键名词备忘

数字量和模拟量 数字量:在时间和数量上都是离散、不连续的(存在一个最小的数量单位Δ) 模拟量:数字量以外的物理量 通常在英文当中可数物理量都是连续的,不可数的都是离散的

docker 搭建nginx+php环境

操作系统 centos-release-7-7.1908.0.el7.centos.x86_64 安装PHP docker pull php:fpm-7.4 安装Nginx docker pull nginx:1.17 查看镜像 docker images [root@VM_1_201_centos ~]# docker images REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE redis               latest              96812ab2b931        14 hours ago        104MB mysql               5.7                 f965319e89de        3 days ago          448MB redis               5.0                 a4d3716dbb72        7 days ago          98.3MB php                 7.4-fpm             9f53a362fb2f        7 days ago          405MB nginx               1.17                602e111c06b6        7 days ago          127MB rabbitmq            3.7.15              b3639fca0afd        10 months ago       149MB mongo               3.2                 fb885d89ea5c        17 months ago       300MB kibana              6.4.0               a7e4cd1a7b45        20 months ago       667MB elasticsearch       6.4.0               1ac676545731        20 months ago       791MB [root@VM_1_201_centos ~]# 创建并启动php容器  docker run -p 9000:9000 –name php7 -v /mydata/nginx/html:/www -d php:7.4-fpm 创建启动nginx容器 docker run -p 80:80 –name nginx  -v /mydata/nginx/html:/usr/share/nginx/html   -v /mydata/nginx/logs:/var/log/nginx   -d nginx:1.17 复制nginx容器内的默认配置文件到宿主主机 docker container cp nginx:/etc/nginx /mydata/nginx/ 修改文件夹名称 cd /mydata/nginx/ mv nginx conf 停止并删除nginx容器,重新创建并启动nginx容器,关联php和挂载nginx配置文件数据卷 docker stop nginx docker rm nginx docker run -p 80:80 –name nginx  -v /mydata/nginx/html:/usr/share/nginx/html  -v /mydata/nginx/logs:/var/log/nginx   -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d   –link php7:php   -d nginx:1.17 查看php容器的ip docker inspect –format '{{.NetworkSettings.IPAddress}}' php7 配置nginx vhost文件 cd /mydata/nginx/conf/conf.d/ vim adamfly.conf server {     listen       80;     server_name   www.adamfly.xyz;     #charset koi8-r;     #access_log  /var/log/nginx/host.access.log  main;     root   /usr/share/nginx/html/www.adamfly.xyz;     location / {         index  index.php index.html index.htm;     } … Read more

docker 常用命令备忘

创建mysql容器,设置端口映射,目录映射 docker run -id  -p 3306:3306  –name=mysql  -v $PWD/conf:/etc/mysql/conf.d  -v $PWD/logs:/logs  -v $PWD/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=111111  mysql:5.7 创建tomcat容器,设置端口映射,目录映射 mkdir tomcat cd tomcat docker run -id  -p 8080:8080  -v $PWD:/user/local/tomcat/webapps  tomcat 创建nginx容器 mkdir nginx cd nginx  touch nginx.conf #nginx.conf内容 mkdir conf mkdir logs mkdir html docker run -it –name=nginx  -p 80:80  -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf  -v $PWD/logs:/var/log/nginx  -v $PWD/html:/usr/share/nginx/html  nginx 创建redis容器 docker run -id –name=redis -p 6379:6379 redis:latest ./redis-cli.exe -h xxxxx -p 6379 #带密码 docker run -id –name redis -p 6379:6379 redis:latest –requirepass "adam1111"

ARM-ADD

ADD是不带进位的加法指令。 语法: ADD{S}{cond} {Rd}, Rn, Operand2 ADD{cond} {Rd}, Rn, #imm12 ; Thumb, 32-bit encoding only S 可选后缀,如果有,那么条件标示根据操作结果更新 cond 可选条件, Rd 目标寄存器 Rn 存储第一个操作数的寄存器 Operand2 第二个操作数 imm12  0-4095之间的数字 ADD指令吧Rn的值或Operand2或imm12的值相加。 在默写情况下,汇编器可以将一条指令替换为另一条。 Thumb指令中使用PC和SP 通常,我们不能把PC(R15)当Rd,或其他操作数。 例外的是: 可以在32位Thumb ADD指令中,用PC当Rn,0-4095的数当Operand2,并且没有S后缀,这些指令被用来生成PC-relative地址。。在这种情况下,PC值的位[1]读为0,因此计算的基址始终是字对齐的 也可以在16位Thumb ADD{cond} Rd,Rd,Rm 指令中任意寄存器使用PC,but以下16位Thumb指令在ARMv6T2以上弃用了: ADD{cond} PC, SP, PC. ADD{cond} SP, SP, PC. 通常不能用SP(R13)做Rd,或任意操作数,以下除外: 可以在ADD指令中用SP做Rn ADD{cond} SP, SP, SP 可以使用,但是在ARMV6T2过期了 ADD{S}{cond} SP, SP, Rm{,shift} and SUB{S}{cond} SP, SP, Rm{,shift} are permitted if shift is omitted or LSL #1, LSL #2, or LSL … Read more

ARM-ADC

带进位的加法指令(add with carry) 语法: ADC{S}{cond} {Rd}, Rn, Operand2 S 可选后缀,如果定义了S后缀,那么操作标识将根据操作结果更新 Rd 目标寄存器 Rn 保存第一个操作数的寄存器 Operand2 第二个操作数 使用: Rn,Operand2和操作标示相加,即,Rd=Rn+Operand2+carry

ARM-DCB

DCB指令分配一个或多个字节内存,并定义运营时内存内容。 = 是DCB的代名词 语法: {label} DCB expr{,expr}… example: 与C string不同,ARM string是非终止的,如下命令定义非终止c string C_string   DCB  "C_string",0