汇编语言如何利用逻辑运算指令怎么实现针对二进制逻辑运算位的清零,置1和求反功能?

反汇编语言常用指令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
反汇编语言常用指令
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩11页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&共有 7917 人关注过本帖
标题:用汇编语言把二进制转换为十进制
等 级:新手上路
帖 子:19
结帖率:40%
&&已结贴√
&&问题点数:10&&回复次数:12&&&
用汇编语言把二进制转换为十进制
二进制转化为十进制用除法,就是除以100,然后除以10。假设43H是入口,出口是44H,45H,如果用44H的低四位存放十进制的百位,用45H的高四位和低四位分别存放十进制的十位和个位,应该怎么把分离出来的数分别存进高四位和低四位,应该用什么指令?分离出来的数放在A里面时,是占的高位还是低位?刚学汇编,求指导……
搜索更多相关主题的帖子:
来 自:红土地
等 级:版主
威 望:311
帖 子:10644
专家分:39428
通常数据是以二进制的方式储存的,显示或打印时才根据需要转换成其他制式。你如果想以十进制的方式来保存数据,存放的格式完全由你自行决定,没有什么标准。
活到老,学到老!
E-mail:hu-
等 级:论坛游民
专家分:16
这个问题我朋友懂
来 自:红土地
等 级:版主
威 望:311
帖 子:10644
专家分:39428
以下是引用xumengxue在 15:33:53的发言:
这个问题我朋友懂涉嫌灌水
活到老,学到老!
E-mail:hu-
等 级:新手上路
帖 子:19
回复 2楼 hu9jj
恩,就是为了显示出数字,才用的十进制,现在已经弄出来了~
等 级:贵宾
威 望:20
帖 子:228
专家分:906
&&& 二进制转化为十进制,照楼主说的先除以100,再除以10,那只能用于已知被转化数为多少的情况,如果不知道被转化数为多少的话,这种方法就不适用了,应该用被转化数不断的除以10,将每次的余数存储起来(每次的余数就是被转化数各个数位上的值,第一次除以10得到的余数是个位上的,第二次除以10得到的余数是十位上的,依此类推),直到商为0说明除完了。但因为这样先得到的是个位上被分离出来的数字,所以数字分离的顺序就是个位、十位、百位……,我们可以利用栈将这个顺序理顺:将每次得到的余数依次入栈,完成之后再依次出栈。利用这种方法,要注意当被转化数较大时可能发生除法溢出,这种情况的解决办法在王爽老师《汇编语言》一书中有提到。
&&& 用上述方法分离出来的数字按题目要求存储的话可以按如下操作:
&&& xor ax,ax&&&&&&&&&&&&;ax清零,以暂存分离出来的个位和十位上的数字
&&& mov al,个位
&&& mov ah,十位
&&& mov cl,4&&&&&&&&&&&&;cl中为移位的位数
&&& shl ah,cl
&&& or&&al,ah&&&&&&&&&&&&;将ah中存储的十位上的数字与al中存储的个位上的数字合并到一块,
&&& mov [45h],al&&&&&&&&&;按要求存储到指定内存单元,执行后,45h字节单元的低4位就是分离出来的个位上的数字,45h单元的高4位就是分离出来的十位上的数字
&&& mov al,百位
&&& mov [44h],al&&&&&&&&&;将分离出来的百位上的数字存储到44h字节单元
&&& 数据在内存单元中存储时都是从低位到高位的。
[ 本帖最后由 取名字 于
12:58 编辑 ]
等 级:贵宾
威 望:20
帖 子:228
专家分:906
以下是引用边小白在 06:51:12的发言:
这行吗?验证没有?
我正在努力学汇编,正努力理解二进制十进制呢,楼主的意思是不是将FF用255表示出来呢?1、行,我编过这道程序,并在DEBUG里单步跟踪过;
2、对,就是这个意思。
等 级:贵宾
威 望:20
帖 子:228
专家分:906
&&& 个、十、百位指的是十进制数的数位。十进制数字在计算机中是以二进制形式存储的,如十进制数字12,在计算机中的表示就是(以字节为例)B,十六进制表示就是0CH,现在我们要把这种计算机中的表示转化成十进制表示形式,即表示成B,十六进制就是12h。前面所讲个、十、百位是指转换过程中分离出来的数位值。下面是具体的示例:
&&& mov&&& ax,0C&&&&&&&&&&&&;要转化的数字
&&& mov&&& bl,0A&&&&&&&&&&&&;10作为除数存储在寄存器bl中
&&& div&&& bl&&&&&&&&&&&&&&&;ax中的数值作为被除数除以bl中存放的除数10,商1(即分离出来的十位上的数字)存放在al中,余数2(即分离出来的个位上的数字)存放在
&&&&&&&&&&&&&&&&&&&&&&&&&&& ;ah中&&&&&&&&&&&&
&&& mov&&& cl,4
&&& shl&&& al,cl
&&& mov&&& [45],al&&&&&&&&&;以上3步将存放在al中的商(分离出来的十位上的数字)左移4位,以便存放在[45h]单元的高4位
&&& or&&&&&[45],ah&&&&&&&&&;将存放在ah中的余数(分离出来的个位上的数字)存放入[45h]单元的低4位
&&& 以上代码中的内存寻址采用的是立即寻址,没有段前缀,只能在DEBUG环境下使用,并且DEBUG环境下默认都是十六进制,所以十六进制数45后面不需要加H。
[ 本帖最后由 取名字 于
15:55 编辑 ]
等 级:贵宾
威 望:116
帖 子:1523
专家分:8553
按楼主的意思,完成该功能的代码如下:
mov al,[43h]&&//从入口获取需要变换的数字
mov [45h],ah&&//得到个位,放到位置45的低4位
or [45h],ah&&//得到十位,放到45的高4位
mov [44h],al&&//al中是余下的百位,放到44处
int 3&&&&&&&&&//完成,在debug中验证通过。如果写通用的函数,建议不使用高位低位,应使用si指向二进制数,di指向变换后存储的位置(开始为反序存储,需执行一次反序操作)
能编个毛线衣吗?
等 级:贵宾
威 望:20
帖 子:228
专家分:906
还是wmf2014版主周到仔细!
版权所有,并保留所有权利。
Powered by , Processed in 0.035771 second(s), 6 queries.
Copyright&, BCCN.NET, All Rights Reserved反汇编语言常用指令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
反汇编语言常用指令
上传于||文档简介
&&计&#8203;算&#8203;机&#8203;寄&#8203;存&#8203;器&#8203;分&#8203;类&#8203;简&#8203;介&#8203;
&#8203;
&#8203;计&#8203;算&#8203;机&#8203;寄&#8203;存&#8203;器&#8203;常&#8203;用&#8203;指&#8203;令&#8203;
&#8203;
&#8203;一&#8203;、&#8203;常&#8203;用&#8203;指&#8203;令&#8203;
&#8203;
&#8203;二&#8203;、&#8203;算&#8203;术&#8203;运&#8203;算&#8203;指&#8203;令&#8203; &#8203;
&#8203;
&#8203;三&#8203;、&#8203;逻&#8203;辑&#8203;运&#8203;算&#8203;指&#8203;令&#8203;
&#8203;
&#8203;四&#8203;、&#8203;串&#8203;指&#8203;令&#8203; &#8203;
&#8203;
&#8203;五&#8203;、&#8203;程&#8203;序&#8203;跳&#8203;转&#8203;指&#8203;令
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩18页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢逻辑运算实验_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
逻辑运算实验
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 二进制异或运算 的文章

 

随机推荐