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

[求助]那个值就是附不进寄存器

fanlibin 发布于 2006-05-09 17:32, 598 次点击
DA SEGMENT
UFO DW 3124H
UF1 DW ?
UF2 DW ?
DA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA
START: MOV AX,DA
MOV DS,AX
MOV AX,UFO
MOV CX,16
MOV BX,0
MOV DX,0
LP1: SHL AX,1
JNC LP2
INC BX
LP2: INC DX
NEXT: LOOP LP1
MOV UF1,BX
MOV CL,UF1
MOV UF2,DX
MOV CH,UF2
MOV AH,4CH
INT 21H
CODE ENDS
END START
原题 统计某个16位2进制数中的0,1个数并奖0的个数存入CH,1的个数存入CL中

我觉得思路没错 用了好几种方法就是不能把BX和DX的值放入CL,CH中

朋友让我用其他方法 可我不甘心 帮帮我
2 回复
#2
ADALE2006-05-09 20:18
以下是引用fanlibin在2006-5-9 17:32:00的发言:
DA SEGMENT
UFO DW 3124H
UF1 DW ?
UF2 DW ?
DA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA
START: MOV AX,DA
MOV DS,AX
MOV AX,UFO
MOV CX,16
MOV BX,0
MOV DX,0
LP1: SHL AX,1
JNC LP2
INC BX
JMP NEXT
LP2: INC DX
NEXT: LOOP LP1
MOV UF1,BX
MOV CL,UF1 ;UF1与CL不能直接传送
MOV UF2,DX
MOV CH,UF2; 同上
MOV AH,4CH
INT 21H
CODE ENDS
END START
原题 统计某个16位2进制数中的0,1个数并奖0的个数存入CH,1的个数存入CL中

我觉得思路没错 用了好几种方法就是不能把BX和DX的值放入CL,CH中

朋友让我用其他方法 可我不甘心 帮帮我

#3
–★–2006-05-12 05:57

MOV UF1,BX
MOV CL,UF1
MOV UF2,DX
MOV CH,UF2
改为
MOV UF1,BX
MOV CL, BL ;不会不知道BL吧?
MOV UF2,DX
MOV CH, DL ;同理
1