这个功能怎么实现啊?
三个带符号的字节数据a,b,c存放在ADR开始的连续单元中,若a,b,c同时为正数则FLAG单元置0,若同时为负数,则FLAG单元置1,否则FLAG单元置全1 问题点数:50、回复次数:5Top
1 楼mydo(侯佩|hopy|ks)回复于 2006-12-01 14:07:05 得分 5
0 判断a,b,c最高位条件
1 选择设置flagTop
2 楼asd123asd123()回复于 2006-12-01 16:30:27 得分 0
最后等待1小时Top
3 楼zara(Kyrie eleison)回复于 2006-12-01 17:45:45 得分 45
这个不难吧. 三个数值 or 结果为负数, 说明三个数都是负数; 三个数值连续 and, 结果为正数, 说明三个数都是正数:
mov al, a
or al, b
or al, c
js l_flag1
mov al, a
and al, b
and al, c
jns l_flag0
l_flagff:
mov FLAG, 11111111b
jmp l_?
l_flag1:
mov FLAG, 1
jmp l_?
l_flag0:
mov FLAG, 0
l_?:Top
4 楼zara(Kyrie eleison)回复于 2006-12-01 19:32:53 得分 0
不对哦, 我上面的错误的. 三个数 or 结果为正数, 说明三个数都是正数; 三个数 and, 结果为负数, 说明三个数都是负数. 其它就是有部分是负数, 有部分是正数.
mov al, a
or al, b
or al, c
mov al, 0
jns l_flag
mov al, a
and al, b
and al, c
mov al, 1
js l_flag
mov al, 11111111b
l_flag:
mov FLAG, al ; 假定 FLAG 为字节类型Top
5 楼zara(Kyrie eleison)回复于 2006-12-01 19:33:39 得分 0
另外, c 在 Masm6 开始的版本中不能作为变量名的, 它是语言类别的一个关键字了Top





