一个小问题,请帮忙看看

ovmem 2004-09-15 08:04:10
题目要求不用条件转移指令改写下面片断(我理解是连循环也算条件转移)

cmp al,bl
jge ok
xchg al,bl
ok:
…………
我的方法是用逻辑运算重写jge如下

mov dl,al
cmp dl,bl
pushf
pop ax
and ax,0880h ;保留of和sf
shl ah,4
xor ah,al ;dl>=bl时ah=00否则ah=80
…………
省略号后的我不会写,主要是不知道用什么方法判断按ah的结果实现转移。或者还有什么方法更好的完成呢?请哥哥姐姐不吝赐教
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ovmem 2004-09-16
  • 打赏
  • 举报
回复
晕,原来我就差一点写不下去,谢谢两位
csdsjkk 2004-09-15
  • 打赏
  • 举报
回复
kao!
改为
shr ax,14
csdsjkk 2004-09-15
  • 打赏
  • 举报
回复
shr ax,7
改为
shr ax,15

dfwzy 2004-09-15
  • 打赏
  • 举报
回复
太长了,不看了
csdsjkk 2004-09-15
  • 打赏
  • 举报
回复
xor ah,10000000b
shr ax,7
add ax,offset doxchg
jmp ax
doxchg:
xchg dl,bl
mov al,dl
大熊猫侯佩 2004-09-15
  • 打赏
  • 举报
回复
Name XorC
;***********
data segment

branch_table dw ok
dw doxchg

data ends
;***********
code segment
assume cs:code,ds:data
start:
push ds
sub ax,ax
push ax

mov ax,data
mov ds,ax

mov al,5h
mov bl,6h

cmp al,bl
pushf
pop dx
and dx,0880h
mov cl,7h
shr dx,cl
push dx
and dx,1
mov al,dl
pop dx
mov cl,4h
shr dx,cl
mov bl,dl
xor al,bl
sub ah,ah
mov bp,ax
add bp,bp
jmp word ptr branch_table[bp]

doxchg: mov cx,11h

ok :
mov dx,22h

retf
code ends
;***********
end start
大熊猫侯佩 2004-09-15
  • 打赏
  • 举报
回复
jge 的位判断条件是 SF Xor OF = 0

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧