随笔分类 - 汇编指令
当学习了很多语言之后才发现, 汇编才是真
摘要:1. 简介 浮点数的操作指令与普通数据类型不同, 浮点数操作是通过浮点寄存器来实现的, 而普通数据类型使用的是通用寄存器,他们分别使用两套不同的指令 浮点寄存器是通过栈结构来实现的, 共八个栈空间组成, 每个浮点寄存器站8字节.每次使用浮点寄存器都是率先使用ST(0), 而不能越过ST(0)直接使用ST(1). 浮点寄存器的使用就是压栈。出栈的过程.当ST(0)存在数据时, 执行压栈操作后,ST...
阅读全文
摘要:汇编指令学习_05 接上文: 汇编指令学习_04 61. JA 条件转移指令JA/JNBE 格式: JA/JNBE标号 功能: 为高于/不低于等于的转移指令 说明: 1. 例如两个符号数a,b比较时,a>b(即CF=0,ZF=0)时转移.因为单一标志位CF=0,只表示a>=b.2. JA/JNBE是同一条指令的两种不同的助记符. 3. 该指令用于无符号数进行条件转移 62. JNBE 请查看6...
阅读全文
摘要:汇编指令学习04接上文: 汇编指令学习_0331. CWD字扩展指令 CWD(Convert Word to Double Word)格式: CWD功能: 将字扩展为双字长,即把AX寄存器的符号位扩展到DX中. 说明:1. 两个字或字节相除时,先用本指令形成一个双字长的的被除数.2. 本指令不影响标志位.3. 示例: 在B1、B2、B3字节类型变量中,分别存有8们带符号数a、b、c,实现(a*b+c)/a运算。MOV AX, FFFFMOV BX, FFCWD ;扩展符号位到DXIDIV BX32. AAD 详情请查看: BCD码指令AAA DAA AAS DAS AAM AAD33. AND
阅读全文
摘要:接上文:汇编指令学习_0221. NEG取补指令 NEG(NEGate)格式: NEG OPRD功能: 对操作数OPRD进行取补操作,然后将结果送回OPRD.取补操作也叫作求补操作,就是求一个数的相反数的补码. 说明:1. OPRD为任意通用寄存器或存储器操作数.2. 示例: (AL)=44H,取补后,(AL)=0BCH(-44H). 3. 本指令影响标志位CF、OF、SF、PF、ZF及AF.22. CMP比效指令 CMP(CoMPare) 格式: CMP OPRD1,OPRD2功能: 对两数进行相减,进行比较. 说明:1. OPRD1为任意通用寄存器或存储器操作数. OPRD2为任意通用寄存
阅读全文
摘要:汇编指令学习接 汇编指令_01http://www.cnblogs.com/aresr/p/3188710.html11. LDS从存储器取出32位地址的指令 LDS格式: LDS OPRD1,OPRD2功能: 从存储器取出32位地址的指令. 说明:OPRD1 为任意一个16位的寄存器.OPRD2 为32位的存储器地址. 示例: LDS SI,ABCD LDS BX,FAST[SI] LDS DI,[BX] 注意: 上面LDS DI,[BX]指令的功能是把BX所指的32位地址指针的段地址送入DS,偏移地址送入DI.12. LES从存储器取出32位地址的指令 LES 格式: LES OPR...
阅读全文
摘要:BCD码指令 AAA DAA AAS DAS AAM AAD十进制数(BCD码)运算指令 以上我们介绍的是二进制数的算术运算指令,二进制数在计算机上进行运算是非常简单的。但是,通常人们习惯于用十进制数。在计算机中十进制数是用BCD码来表示的,BCD码有两类:一类叫压缩型BCD码,一类叫非压缩型BCD码。用BCD码进行加、减、乘、除运算,通常采用两种方法:一种是在指令系统中设置一套专用于BCD码运算的指令;另一种是利用二进制数的运算指令算出结果,然后再用专门的指令对结果进行修正(调整),使之转变为正确的BCD码表示的结果。8086/8088指令系统所采用的是后一种方法。 在进行十进制数算术运算时
阅读全文
摘要:汇编指令学习_01通用寄存器 AX BX CX DX段寄存器 CS - Code Segment DS - Data Segment ES - Extra Segment SS - Stack Segment指针寄存器 IP - Instruction Pointer BP - Base Pointer SP - Stack Pointer数据转移寄存器 DI - Destination Index SI - Source Index set of flags指令学习1. MOVE数据传送指令 MOV格式: MOV OPRD1,OPRD2功能: 本指令将一个源操作数送到目...
阅读全文

浙公网安备 33010602011771号