
汇编
文章平均质量分 64
nannan408
这个作者很懒,什么都没留下…
展开
-
汇编中的协处理器及命令大全
协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助忆时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码。在协处理器指令在执行过程中,需要访问内存单元时,CPU会为其形成内存地址。协处理器在协处理器指令期间内利用数据总线来传递数据。80287协处理器利用I/O地址00FAH~00FFH来实现其与CPU之间的数据交换,而80387~Pentium系列芯片,则是利...原创 2011-04-26 13:34:27 · 727 阅读 · 0 评论 -
汇编除法指令div需要注意的
div是除法指令,使用div做除法的时候应注意以下问题:1、除数:有8位和16位两种,在一个寄存器或者内存中。2、被除数:默认放在AX或(DX和AX)中,如果除数为8位,被除数为16位,被除数默认在AX中存放,如果除数为16位,被除数为32位,被 除数则在(DX和AX)中存放,DX存放高16位,AX存放低16位。3、结果:如果除数是8位,则AL存储除法操作的商,AH存储除...原创 2011-04-02 18:04:11 · 2765 阅读 · 0 评论 -
汇编寄存器的使用,SI,DI的使用
一、汇编语言中,为什么SI和DI不能同时使用汇编 其实你可以想一下,这两个寄存器的意思,SI源变址寄存器,DI目地变址寄存器,既然是变址寄存器,那么他们肯定是在某个地址的基础上进行偏移变化,由此我们就得出了需要基址寄存器。你要是把这两个寄存器同时使用,那你地址变化的基址都没有,你该怎么变化呢?你在谁的基础上变化(也就是地址偏移)?对于这些汇编中的规定,其实有时并不需要书上详细的介绍,我...原创 2011-04-01 13:23:43 · 2992 阅读 · 1 评论 -
int 21h以及汇编的DOS调用
很多初学汇编语言的同学可能会对INT 21H这条指令感到困惑,不知道是什么意思,下面就以一段简单的程序为大家讲解:例如:需要键盘输入,并且回显。AH的值需要查表取得,表在下面指令:MOV AH,01 INT 21H通过这样两条指令,输入的字符就会被存储在AL中。指令:MOV AH,4CH INT 21H这句通常放在程序最后,意思为输入任意键都可以退出窗口...原创 2011-04-01 10:33:22 · 306 阅读 · 0 评论 -
汇编的移位如rol和逻辑运算具体对标志位的影响(转)
AND XOR TEST SHL SAL ROL RCL OR NOT SHR SAR ROR RCR AND, OR , XOR 和 TEST都是双字节操作指令,操作数的寻址方式的规定与算术运算指令相同.NOT是单字节操作指令,不允许使用立即数.逻辑运算均是按位进行操作,真值表如下:AND (位与&) OR ( 位或| ) XOR ( 位异或^ ) ...原创 2011-03-29 14:42:54 · 3314 阅读 · 0 评论 -
汇编的标志位阐明
1、进位标志CF(Carry Flag)进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。2、奇偶标志PF(Parity Flag)奇偶标志PF用于反映运算结果中“1”的个...原创 2011-03-22 16:10:03 · 118 阅读 · 0 评论 -
哪些指令会改变汇编的标志位(再附个总结)
这些书上都没有现成的答案,需要自己总结,感谢BEYOND0769,做出这么出色的总结。以下是会改变标志位的指令。(1)加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。 CF、ZF、SF、OF CF最高位是否有进位 DF若两个操作数...原创 2011-03-22 15:08:17 · 2180 阅读 · 1 评论 -
汇编一种清零的方法------异或
清零 常看见的有mov BX 0,但也有很多时候,采用命令XOR(按位异或)来做,两个完全一样的数,按位置异或,肯定结果为0.这让汇编看起来很有趣。如: XOR BX,BX...2011-03-21 11:25:41 · 4142 阅读 · 1 评论 -
汇编命令大全及简例
[b]一、常用的指令----------------------------------------------------------[/b]AAA 未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition)格式: AAA功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中. 说明:1. 组合的...原创 2011-03-20 14:27:27 · 1799 阅读 · 0 评论 -
算术移位操作和逻辑移位操作的区别和联系(转)
移位操作有很多种,一般知道算术移位操作(2个),逻辑移位(2个)这四个,一般的程序就够用了。 移位操作都会引起被移位方向的一些数据丢失,所以需控制好。逻辑移位是连标志位(正负号)一起操作的,所以可能会改变正负号。而算术移位是固定好标志位,移动其他的位,不会改变正负号,但前面被移动的位是补0还是补1,如果标志位是1,则都补1,是0,则都补0。1.逻辑移位(不管是左移位还是右移位)...原创 2011-03-19 14:07:35 · 1449 阅读 · 0 评论 -
一字节BCD码转ASCII码的算法及源码
一字节压缩BCD码是两位0~9的数字,4位二进制数对应一位BCD码。所以关键是要将两个4位二进制数分离开来。“分离”可以用移位指令和逻辑运算指令来实现,然后用加30H的加法,便可以得到相应的ASCII码。 1. 这里有个问题,30H从哪里来?很简单,ASCII都是固定的,起始数字0对应的ASCII是30H,数字1对应的ASCII码数21H,数字2对应的ASCII码数22H........2011-03-19 13:13:03 · 1538 阅读 · 1 评论 -
汇编术语快速阐明
教科书式教学的遗毒是人们明知道是晦涩的教条,仍然对其容忍。比如汇编,一些概念明明可以用日常语言解释,非要自定义个中国名词来替代,让一片人摸不着头脑。下面说明些简单的汇编名词,以后会陆续补上其他的。 1.BCD码 一种编码,用四位二进制数表示1个十进制数。(个人认为应该说成“四位二进制码”,BCD这种定义实在太随便,也不知道是谁开始叫的) 2.Test指...2011-03-19 10:52:16 · 102 阅读 · 0 评论 -
1 汇编开篇
一直很讨厌汇编的两个词“字”,“伪指令”。直接说“双字节”不好了吗,干嘛让人把它和字节混淆?直接说“预编译指令”不好了吗,干嘛让人想到“假的”,“伪军“这些东西。中国的教科书式教学,害了不少人。只有那些傻瓜丛书,才让人感到些许欣慰。 下面说下汇编的一个关键字“lable”的用法。 LABLE 与标号连用。例 POINTF LABLE FAR POINTN:MOV AX...2011-03-17 23:02:33 · 81 阅读 · 0 评论 -
汇编递归中的ret跳到了哪?
汇编递归调用的时候,call的每一句,实际上都将其下一句压栈,而其中的ret,是直接返回最后一次的call的下一句,而不是第一次call调用的下一句。所以,在程序结束之前,调用了几次call,将执行多少次return,才能最终将程序结束。并非java中的 一句 return,所有返回。 如:递归求n的阶乘,例子如下:FACT PROC PUSH DX MO...2011-04-04 16:32:39 · 1830 阅读 · 0 评论