注册 登录
编程论坛 汇编论坛

求助。。在线等。。

summerxi 发布于 2008-09-20 14:46, 1834 次点击
写一指令序列,将AX中最低4位置1,最高三位置0,7,8,9取反,其余不变。


我自己解决了最低4位和最高三位的问题(是用与和或),求助其取反指令。。。

17 回复
#2
summerxi2008-09-20 14:51
都没人在啊
#3
summerxi2008-09-20 15:28
我自己想出了一个方法。。
刚才想了好久,只想出一个办法,但是感觉好烦琐,希望有人有更好的办法。。。指导下。。


mov bx,ax
shl bx,1
and bh,07h
xor bh,07h
shr bx,1
or al,0fh
and ah,1fh

不知道有别的方法没
#4
ONEPROBLEM2008-09-20 17:25
这个~~对我来说,难.
建议楼主做成个小程序,多试验几下,就都搞定了~~
#5
summerxi2008-09-20 17:42
[bo][un]ONEPROBLEM[/un] 在 2008-9-20 17:25 的发言:[/bo]

这个~~对我来说,难.
建议楼主做成个小程序,多试验几下,就都搞定了~~

是书后练习
。。

要求是写程序段
#6
rediums2008-09-20 18:48
xor ax,1110000000b
#7
summerxi2008-09-20 19:49
LS的,解决的是哪个啊???
#8
rediums2008-09-20 19:58
7、8、9位取反
#9
summerxi2008-09-20 21:12
你错了
#10
Joforn2008-09-20 21:12
AND AH,1FH  ;最高三位置0
XOR AX,380H ;7,8,9位取反
OR AL,0FH   ;最低四位置1
#11
summerxi2008-09-20 21:13
你其余的也取反了
#12
Joforn2008-09-20 21:23
[bo][un]summerxi[/un] 在 2008-9-20 21:13 的发言:[/bo]

你其余的也取反了


1 XOR 1=0
0 XOR 0=0
1 XOR 0=1

  XOR AX,0FFFFH=NOT AX
  XOR AX,O=AX
所以推出XOR AX,3800H为7、8、9位取反

[[it] 本帖最后由 Joforn 于 2008-9-20 21:28 编辑 [/it]]
#13
rediums2008-09-20 21:26
不小心刷了一下,楼上的帖子怎么没了……
#14
Joforn2008-09-20 21:31
再刷新一下就出来了。
#15
ONEPROBLEM2008-09-20 23:26
[bo][un]Joforn[/un] 在 2008-9-20 21:12 的发言:[/bo]

AND AH,1FH  ;最高三位置0
XOR AX,380H ;7,8,9位取反
OR AL,0FH   ;最低四位置1

正解.我也学习了~~
#16
summerxi2008-09-20 23:42
[bo][un]Joforn[/un] 在 2008-9-20 21:23 的发言:[/bo]



1 XOR 1=0
0 XOR 0=0
1 XOR 0=1

  XOR AX,0FFFFH=NOT AX
  XOR AX,O=AX
所以推出XOR AX,3800H为7、8、9位取反





确实是好方法。。

在此谢过。。

学习了。。。
#17
vulture2008-09-21 09:00
我也是新手!但这我知道
置位 OR 1             ;置位
     其余位 OR 0      ;不变
置0  AND 0            ;置0
      其余位 AND 1    ;不变                        
取反 XOR 1            ;取反
      其余位 XOR 0    ;不变
#18
summerxi2008-09-21 11:08
LS正解/。。

可怜的我还用了移位来做。。

烦琐的要死
1