1. 汇编-ESP寻址 EBP寻址

寄存器传参和堆栈传参

寄存器传参

MOV ECX,1
MOV EBX,2
CALL XX
MOV EAX,ECX
ADD EAX,EBX
RETN

堆栈传参 –ESP寻址

PUSH 1
PUSH 2
CALL XXX
MOV EAX,DWORD PTR SS:[ESP+8] //当内存中括号中包含ESP或者EBP的话  用SS
ADD EAX,DWORD PTR SS:[ESP+4]
RETN 8

堆栈传参 –EBP寻址

PUSH 1
PUSH 2
CALL XXX
PUSH EBP
MOV EBP,ESP
SUB ESP,10          //提升堆栈
MOV EAX,DWORD PTR SS:[EBP+8]  //通过EBP获得参数  参数位置 +4
ADD EAX,DWPRD PTR SS:[EBP+0xC]
MOV ESP,EBP
POP EBP         //恢复堆栈

7.汇编-汇编中的函数

什么是函数

函数就是一系列指令的几个,为了完成某个会重复使用的特定功能

函数调用

  1. JMP来执行函数
  2. CALL来执行函数

函数的参数和返回值

通常情况下,会将函数的计算结果放到EAX寄存器中

……

5.汇编-堆栈相关指令

什么是堆栈

程序启动的时候操作系统会给每个程序一块虚拟的4G内存当程序需要使用的时候必须要和操作系统申请内存
堆栈是程序的心脏,程序中需要用到的重要数据,都在堆栈中体现

……

2.汇编-内存

寄存器数量和容量有限,为了存储大量数据,所以我们需要内存

  1. 每个程序都会有自己的独立的4GB内存空间(

这里的内存其实是虚拟的,并不是真的给了程序4G内存,当程序读或者写这段内存的时候,操作系统才会把使用的内存映射到物理内存上
物理内存和内存条之间还有一层映射

……

  1. 汇编-内存复制指令

标志寄存器 EFL

EFL是32位寄存器
其中的每一位,含义都是不同的

0x00000246 16进制
0000 0000 0000 0000 0000 0010 0100 0110 二进制

第十位(从下标开始算 从右往左):DF位
DF位为``的时候: MOVS 执行完毕之后 ESI和EDI的值会增加
DF位位1的时候: MOVS 执行完毕之后 ESI和EDI的值会减少

……

3.汇编-常用汇编指令

1. MOV指令(赋值)

含义:前者被后者赋值
exp:

MOV EAX,0xFFFFFFFF

此时 EAX = 0xFFFFFFFF

指令格式:

  1. MOV r/m8,r8
  2. MOV r/m16,r16
  3. MOV r/m32,r32
  4. MOV r8,r/m8
  5. MOV r16,r/m16
  6. MOV r32,r/m/32
  7. MOV r8,imm8
  8. MOV r16,imm16
  9. MOV r32,imm32

r – 通用寄存器
m – 内存
imm – 立即数
r8 – 8位通用寄存器
m8 – 8位内存
imm8 – 8位立即数

……

1.汇编-寄存器

寄存器介绍

寄存器是什么

计算机在三个地方可以存数据

  1. cpu
  2. 内存
  3. 硬盘

所谓寄存器,就是cpu中硬盘存储数据的地方

寄存器的大小

寄存器大小取决于cpu的位数
比如32位 那么cpu所提供的容器有三种 8位 16位 32位
如果64位 那么cpu所提供的容器有四种 8位 16位 32位 64位

……

windows 安装服务

方法1 :sc

安装

1
2
3
    //bin目录加上 "s" 证明是从windows服务启动该程序
    sc create server_name binpath="bin_path s" displayName="display_name" start=auto
    sc create elasticsearch_index_sync binpath="D:\job\search-job\Search.JobService.exe s" displayName="elasticsearch index sync work" start=auto

卸载

1
2
    sc delete server_name binpath="bin_path" displayName="display_name"start= auto
    sc delete elasticsearch_index_sync binpath="D:\job\search-job\Search.JobService.exe" displayName="elasticsearch index sync work" start= auto

方法2:installutil

安装

1
2
3
    %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe D:\job\search-job\Search.JobService.exe
    Net Start SearchJobService
    sc config SearchJobService start= auto

第二行为启动服务。
第三行为设置服务为自动运行。

……