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

[求助]CF的用法

chengxiaobo 发布于 2006-12-14 21:21, 914 次点击
我在做汇编时有这样的一个问题:
cseg segment
assume cs:cseg
start:
mov bx,7f00h
mov cx,8100h
add bx,cx
mov dx,0b9h
sal dh,1

int 21h
cseg ends
end start
运行后,CF=0,
当我把sal dh,1改为sal dl,1时,运行后,CF=1,这是为什么
请问各位大哥,为什么开始的时候CF=0,后来的时候CF=1呢
6 回复
#2
菜鸟上路2006-12-15 12:53
SAL是把寄存器最高位移入CF

DH=00H,DL=B9H

SAL DH,1 ;CF=0
SAL DL,1 ;CF=1
#3
chengxiaobo2006-12-16 19:15
不懂,SAL怎么是把寄存器最高位移入CF,它不是算术左移吗,它跟CF没有什么关系吧。
#4
lefttime2006-12-16 20:49
算术、逻辑移位都会把最后一移出的数传给CF
#5
chengxiaobo2006-12-17 12:00
哦,是这样啊,我们老师没说这个啊,谢谢楼上的大哥啊,可要向你好好学习了,嘿嘿。
#6
曾小2006-12-17 18:53

怎么没说啊?明明说了啊?
自己划划就出来了.

#7
chengxiaobo2006-12-20 23:26
呵呵,是啊,老师是讲了,现在想起来了,不能怪老师啊,是我没认真,听你这么一说啊,还真懂点了,开始看书时,还不知道把那一位移个CF是为什么,是干吗用的, 现在明白了。
1