- 浏览: 1796244 次
- 性别:
- 来自: 深圳
-
最新评论
-
bilimeng:
求教,ConcurrentHashMap不是线程安全的么,为啥 ...
架构师之jdk8-----------------ConcurrentHashMap快速构建本地缓存和单例模式 -
baiducctv5:
wtaisi 写道wtaisi 写道|||||||||
spring aop中的propagation的7种配置的意思 -
zhangdong92:
另外内存泄漏一般也不是指计算时溢出。而是指某些对象已经不再使用 ...
java基础之面试篇三---int,float,long,double取值范围,内存泄露 -
zhangdong92:
Long.MAX_VALUE应该是(2^63)-1,而不是64 ...
java基础之面试篇三---int,float,long,double取值范围,内存泄露 -
nannan408:
java-lxm 写道好湿好湿好湿谢谢: )。
游南巅之晚秋
文章列表
很多初学汇编语言的同学可能会对INT 21H这条指令感到困惑,不知道是什么意思,下面就以一段简单的程序为大家讲解:
例如:需要键盘输入,并且回显。
AH的值需要查表取得,表在下面
指令:MOV AH,01
INT 21H
通过这样两条指令,输入的字符就会被存储在AL中。
指令:MOV AH,4CH INT 21H
这句通常放在程序最后,意思为输入任意键都可以退出窗口
表:DOS系统功能调INT 21H
AH 功能 调用参数 返回参数
00 程序终止(同INT 20H) CS=程序段前缀
01 键盘输入并回显 AL=输入字符
02 显示输出 DL=输出字符
03 ...
汇编的移位如rol和逻辑运算具体对标志位的影响(转)
- 博客分类:
- 汇编
AND XOR TEST SHL SAL ROL RCL
OR NOT SHR SAR ROR RCR
AND, OR , XOR 和 TEST都是双字节操作指令,操作数的寻址方式的规定与算术运算指令相同.
NOT是单字节操作指令,不允许使用立即数.
逻辑运算均是按位进行操作,真值表如下:
AND (位与&) OR ( 位或| ) XOR ( 位异或^ )
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0 ...
1、进位标志CF(Carry Flag)
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。
使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比 ...
这些书上都没有现成的答案,需要自己总结,感谢BEYOND0769,做出这么出色的总结。以下是会改变标志位的指令。
(1)
加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。
CF、ZF、SF、OF
CF最高位是否有进位
DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0.
减法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B
前六种除了DEC不影响CF标志外都影 ...
汇编一种清零的方法------异或
- 博客分类:
- 汇编
清零 常看见的有mov BX 0,但也有很多时候,采用命令XOR(按位异或)来做,两个完全一样的数,按位置异或,肯定结果为0.这让汇编看起来很有趣。如:
XOR BX,BX
一、常用的指令----------------------------------------------------------
AAA
未组合的十进制加法调整指令 AAA(ASCII Adgust for Addition)
格式: AAA
功能: 对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中. ...
移位操作有很多种,一般知道算术移位操作(2个),逻辑移位(2个)这四个,一般的程序就够用了。
移位操作都会引起被移位方向的一些数据丢失,所以需控制好。逻辑移位是连标志位(正负号)一起操作的,所以可能会改变正负号。而算术移位是固定好标志位,移动其他的位,不会改变正负号,但前面被移动的位是补0还是补1,如果标志位是1,则都补1,是0,则都补0。
1.逻辑移位(不管是左移位还是右移位) 都是空缺处补0
例如: mov ax , 1100_0111_0110_1000B
mov cl , 3
...
一字节压缩BCD码是两位0~9的数字,4位二进制数对应一位BCD码。所以关键是要将两个4位二进制数分离开来。“分离”可以用移位指令和逻辑运算指令来实现,然后用加30H的加法,便可以得到相应的ASCII码。
1. 这里有个问题,30H从哪里来?很简单,ASCII都是固定的,起始数字0对应的ASCII是30H,数字1对应的ASCII码数21H,数字2对应的ASCII码数22H......所以单个数字的ASCII码对应在30H和39H之间,而1位BCD(四位二进制数)码对应的高位和低位,存放的刚好已经是0H~9H的值,刚好是对应数字1-9,所以直接加上30H就好了。
2.需要注意 ...
教科书式教学的遗毒是人们明知道是晦涩的教条,仍然对其容忍。比如汇编,一些概念明明可以用日常语言解释,非要自定义个中国名词来替代,让一片人摸不着头脑。下面说明些简单的汇编名词,以后会陆续补上其他的。
1.BCD码
一种编码,用四位二进制数表示1个十进制数。(个人认为应该说成“四位二进制码”,BCD这种定义实在太随便,也不知道是谁开始叫的)
2.Test指令
先做位与运算,看测试条件是否满足,通常和JNZ(满足条件),JZ(不满足条件)联用。看要测试的数有多少个1,如果里面的1的位置都满足,就跳转。
如: Test X1,00000001B ...
一直很讨厌汇编的两个词“字”,“伪指令”。直接说“双字节”不好了吗,干嘛让人把它和字节混淆?直接说“预编译指令”不好了吗,干嘛让人想到“假的”,“伪军“这些东西。中国的教科书式教学,害了不少人。只有那些傻瓜丛书,才让人感到些许欣慰。
下面说下汇编的一个关键字“lable”的用法。
LABLE 与标号连用。例 POINTF LABLE FAR POINTN:MOV AX,[BX+SI] 第一句给第二句隐含定义的近标号POINTN取一个新名字POINTF,并将类型属性修改为FAR 。这样就允许作为其他代码段中转移或调用指令的目标标号(这时标号是POINTF)。
隋炀帝杨广最大的功劳是开通了大运河,其最大缺点是玩物丧志,最大的优点是很解风情。
换在了现代,杨广可以做个很成功的诗人。出身在帝王之家,决定了他不可能做很多喜欢做的事情,而在当今,能这么特立独行做事,把想法付诸实践的人的很少,是个人才,如果善加打磨,必成大器。
顺便也提到了杨广的那些女人,都是各有特点,非凡脱俗,使得在感慨隋炀帝暴政的同时,世人也对其艳福羡慕不已。
一直对三国,秦汉,隋唐情有独钟,尤以三国为甚。古人云:以铜为鉴,可以正衣冠;以人为鉴,可以明得失;以史为鉴,可以知兴替。所以成大事者,必懂得越过先者的教训,走尽量少的弯路,尽快到达成功的彼岸。
而三国,这个和春秋战国一样乱的乱世,它所产生的经验教训和迸发出来的光辉色彩,让后人至今仍津津乐道,乐此不彼。比如三顾茅庐,赤壁之战,桃园结义,宁可我负天下人等故事,都蕴含了深深的处事之道。这些经验教训和人情故事,在当今社会,仍然有十足的意义。
这里开个头,以表多年来一直希望将三国的一些积极的方面,一些与众不同的方面,展示给世人的心愿。
以后将慢慢将一些读书的感悟奉上,望各位看官多扔 ...
也许经常使用Myeclipse的程序员会发现,视图窗口有时候会脱离了Myeclipse主窗口,造成分离的状况,即使关掉后,再打开,仍然是同样的情况,这会造成非常的不方便。
解决这个问题可以有两种方法:
一、再新建个workspace,原来的workspace不要了。
二、直接将视图重置,视图重置选项在哪里呢?首先,直接在Myeclipse主窗口的最上层选项中,找到"Window"这个按钮,它在"Run"按钮和"Help"按钮中间。然后点击"Window"这个按钮的下拉框中的"Reset ...
中国企业的积习主要是无道理的加班时间和集权性质的管理,工作者的工作满意度与付出程度远不成正比,劳动者想有所发展,基本很难,因为,这些企业,基本不愿花时间去研究,怎么去对待人才,而所渴求的,是一味的索取,这注定中国企业的发展是畸形的。
如果说上30年中国乘着改革的快车,在外来企业注入的活力下,在不遗余力的模仿下,还能蓬勃的发展着,未来的30年,在不会创新的中国企业面前的,肯定会面临短路的危险。还是那句话,长江后浪推前浪,没有学院性质和以人为本的中国企业,将被历史无情地淘汰。
而新生的本土创业者,依靠残酷的竞争和推倒性的创新,势必在滔滔洪水中飞驰着。
从2007年,我们一些出生牛犊的伙伴,开始了陌生的嵌入式旅途。为了“宏伟"的蓝图,五个伙伴开始了嵌入式的追风之路。当然,我是中途夭折的,两个广工的嵌入式先驱的在这方面都比我强百倍。但,我对嵌入式的兴趣依然未减,因为,软硬结合,可以干很多意想不到的事情,比如高度智能。
嵌入式目前的发展状况是linux仍然风光无限,但芯片大战和语言大战却拖得嵌入式步履阑珊。应用上面,局限性太大,这有很多是观念原因,很多人已经习惯了pc和windows,想脱离这两个做事情,兼容性上要付出很多代价。
嵌入式的未来是非常光明的,很简单,软硬结合,是迟早的事情,现在硬件越来越离不开软件了。所以, ...