| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1397 人关注过本帖
标题:我给大家出一道考试题。。。
只看楼主 加入收藏
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
 问题点数:0 回复次数:9 
我给大家出一道考试题。。。
一个无符号数,存放在ax寄存器中。
要求:写一段程序,执行完这段程序后,如果ax=0,那么ax还为0,否则,ax=1。
[un]前提:不许使用条件转移指令。[/un]
收到的鲜花
  • zklhp2008-11-13 13:43 送鲜花  50朵   附言:我很赞同
搜索更多相关主题的帖子: 考试 
2008-11-13 12:18
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
答案:

TEST    AX,0FFFFh   ;测试AX寄存器有没有哪位是1,有,则肯定>0
LAHF                ;取标志寄存器到AH
AND     AX,4000h    ;屏蔽除ZF以外所有位
SHR     AX,0Eh      ;移动ZF位到第0位
XOR     AX,1        ;取反第0位(注意ax>0,ZF=0,所以取反)

—— 一位网友非这样要求,绞尽脑汁写出来了,不知还有没有好的办法?

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-13 12:23
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
网友Mr.Y提点,更简练的方式:
test ax,ax
setnz al
and  ax,0001h 或者 xor ah,ah

推而广之:
test eax,eax
setnz al
and eax,1

对8位而言:
test al,al
setnz al

[[it] 本帖最后由 cnhanxiao 于 2008-11-13 13:12 编辑 [/it]]
收到的鲜花
  • zklhp2008-11-13 13:44 送鲜花  50朵   附言:我很赞同

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-13 13:01
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
不错 学习了
2008-11-13 13:46
ruiquan765
Rank: 1
来 自:广西梧州市
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-4-16
收藏
得分:0 
楼主,我想这样写似乎也行
cmp ax,0
jne L1       ;不相等则跳转(即不为0)
je L2        ;相等则跳转(去执行后面的程序)
L1:
mov ax,1
L2:
……

呵呵,交流一下

我身在江湖,江湖却没有关于我的传说……
2008-11-13 23:37
arsionbc
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-9-20
收藏
得分:0 
我的
cmp  ax,1
setae al
2008-11-13 23:50
arsionbc
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-9-20
收藏
得分:0 
555,错了
楼上没看条件,我的错了
cmp ax,1
setae al
xor ah,ah

[[it] 本帖最后由 arsionbc 于 2008-11-14 00:04 编辑 [/it]]
2008-11-13 23:52
cnhanxiao
Rank: 2
等 级:新手上路
威 望:4
帖 子:124
专家分:0
注 册:2008-10-17
收藏
得分:0 
回复 5# 的帖子
:)  不许使用条件转移指令——前提

还有绑架成版主的?拒绝做版主——对不起啊!
2008-11-14 00:24
win_pig
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-11-14
收藏
得分:0 
setnz ;80386指令
2008-11-14 01:16
win_pig
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-11-14
收藏
得分:0 
妙!!!
解题思路是利用ZF标志呵,
AX=0,ZF=1  
AX/=0,ZF=0
ZF的值取反后赋予AX正符题意
楼主原解是基于8086的正解,
第一句的
TEST AX,AX
还可用
AND AX,AX
OR AX,AX
实现ZF
学习了。谢
2008-11-14 01:31
快速回复:我给大家出一道考试题。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014260 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved