- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 汇编常用跳转指令及检测的标志位
CF=0 二进制减法运算中最高有效为向高位无借位(被减数〉=减数,够减的情况)OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。OF=1 两数符号相反(正数-负数,或负数-正数),而结果符号与减数相同。
2024-07-25 15:54:35
471
原创 SS, SP, BP 三个寄存器
比如说,堆栈中压入了很多数据或者地址,你肯定想通过SP来访问这些数据或者地址,但SP是要指向栈顶的,是不能随便乱改的,这时候你就需要使用BP,把SP的值传递给BP,通过BP来寻找堆栈里数据或者地址.一般除了保存数据外,可以作为指针寄存器用于存储器寻址,此时它默认搭配的段寄存器是SS-堆栈段寄存器.BP是16位的,再扩充16位就是EBP,用于32位编程环境的.一般高级语言的参数传递等等,转换为汇编后经常由BP/EBP来负责寻址\处理.ret返回,弹出返回地址,ESP+=4, ESP=NN-08h,
2024-07-23 10:18:09
418
原创 C语言中常用的标准库函数
把双精度val分解尾数和以2为底的指数n,即val=x*2n,n存放在exp所指的变量中。从fp所指的文件中按format指定的格式把输入数据存入到args,…从标准输入设备按format指定的格式把输入数据存入到args,…从fp所指的文件中读取一个长度为n-1的字符串,将其存入buf所指存储区。把双精度val分解成整数部分和小数部分,整数部分存放在ip所指的变量中。s1= =s2,返回0;的值以format指定的格式输出到fp指定的文件中。成功,返回文件指针(文件信息区的起始地址),否则返回NULL。
2024-07-22 17:53:50
1302
原创 8086CPU中的标志寄存器
8086CPU中的标志寄存器(FLAG寄存器)是一个16位的寄存器,用于存储程序执行过程中的状态信息。CF (进位标志):用于表示无符号算术运算中的进位或借位情况。如果运算结果产生了进位或借位,CF被设置为1,否则为0。PF (奇偶标志):用于表示运算结果中1的个数的奇偶性。如果结果中1的个数为偶数,PF被设置为1,否则为0。如果运算结果溢出,OF被设置为1,否则为0。如果DF被设置为1,字符串操作是递减的,否则是递增的。如果结果为负数,SF被设置为1,否则为0。如果结果为零,ZF被设置为1,否则为0。
2024-07-12 16:10:52
413
原创 NASM中文手册之常用伪指令
'STRUC'和'ENDSTRUC'被定义成使用'ABSOLUTE'的宏(同时也使用了'__SECT__')'EXTERN'跟 MASM 的操作符'EXTRN',C 的关键字'extern'极其相似:它被用来声明一。'GLOBAL'是'EXTERN'的对立面:如果一个模块声明一个'EXTERN'的符号,然后引用它,就像'SECTION'一样,用户级的'ABSOLUTE'在执行时会重定义'__SECT__'宏。Unix 的目标文件格式和'bin'目标文件格式,都支持标准的段'.text','.data'
2024-05-26 21:30:12
293
原创 NASM手册阅读笔记 - 预处理器之结构定义
iendat 符号是定位使用的将地址移动到 .aaa 也就是相对偏移 0x0处然后赋值一个DWORD = 123将地址移动到 .bbb 也就是相对偏移 0x2处然后赋值一个DWORD = 321所以如果我们定义的数据是紧凑的话完全是可以这样的at .aaadw 123;实际赋值 .aaadw 321;实际赋值 .bbb。
2024-05-26 18:50:38
566
原创 NASM手册阅读笔记 - 预处理器之上下文栈
就是一个在编译期间由编译器维护的堆栈之前说了预处理器的作用是在编译阶段执行一些代码,以简化或者增强汇编代码的能力,就像汇编代码本身执行的过程中需要一个堆栈存储一些信息一样,预处理器的指令在运行过程中也是需要存储一些信息的,那么这个上下文栈就是存储信息的地方但是它比堆栈更强大,堆栈是只能存储一个值,而上下文栈是可以在每层存储很多信息类比的话就是堆栈的每一层都是一个有名字的容器,你可以在每一层的容器里存储各种各样的东西。
2024-05-26 18:50:06
224
原创 NASM手册阅读笔记 - 其他
当汇编器读到这条指令的时候就会产生一个变异错误,错误内容就是 指令中的错误信息。%include 指令的高级版,他可以指定加载某哥文件某行进来。和MASM中 rept 一样的意思 就是重复指令,可以认为是。包含其他的asm源文件,可使用C常用的防止被重复包含的方法。mmm 是递增值,也就是读一个文件 nnn 就++mmm。%line nnn[+mmm] 文件名。从字符串中取第pos个字符赋值给前面的变量。计算字符串的长度,并将X定义为这个常数。XXXXX 要重复的代码内容。%rep 重复次数。
2024-05-26 18:49:09
248
原创 NASM手册阅读笔记 - 预处理器之宏定义
在宏定义的参数数量后边加上 + 加号,就表示这是一条贪婪宏定义其含义就是多出来的参数被当成一个整体作为最后一个参数传入比如我如下两个宏的定义那么这两个调用完全等价。
2024-05-26 13:06:18
1197
labelme本地标注工具
2024-07-28
C/C++学习资料(适合新手)
2024-07-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人