教我汇编吧

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:15:36
Test语句为什么需要2个参数?
Test语句测试后结果放到哪里?
条件跳转语句有哪些,分别有什么用?
强制跳转用那条?
add sub 等计算语句计算后放入哪个寄存器?
程序入口点是不是就是程序运行时开始的地方?
mov语句的两个参数一样是怎么回事?
跳转时跳转地址前为什么要一个“short”
dd语句和db语句有什么用?

注释:以上内容为本人从IDA Pro5.2破解版里看到的内容中的疑问,本人为汇编新手,拜托大家讲明白点,复制粘贴内容禁用.

test 语句其实就是and语句的功能,将两个操作数取与,但是test不改变操作数本身,只会影响标志位
条件跳转语句:
JE/JZ 等于
JNE/JNZ 不等于
JC 有进位or借位
JNC 无进位or借位
JO 溢出
JNO 无溢出
JP/JNE 偶
JNP/JPO 奇
JS 符号位1
JNS 符号位0
以下对于符号数
JA/JNBE 大于
JAE/JNB 不低于
JB/JNAE 小于
JBE/JNA 不大于
以下对于有符号数
JG/JNLE 大于
JGE/JNL 不低于
JL/JNGE 小于
JLE/JNG 不大于

强制跳转用jmp吧,无条件转移

add sub后面两个操作数,存入第一个,也就是目标操作数

一般程序前面部分是各个段的定义,在dos下运行-t命令,可以看出是从代码段进入运行的

mov 两个操作数一样我感觉没什么意义,另外说明一点是两个操作数一样时该操作数必须是通用寄存器才可以

加short是段内直接转移
db dd dw是数据定义符
db 定义字节变量
dw 定义字变量
dd 定义双字变量

test是比较两个数的,当然得给它两个数才能比较
mov语句把后一个参数传给前一个参数
dd db dw 是规定你后面变量的大小的,和int short类似
就记得这些了,其他的忘了。