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

求助:xp系统下一汇编程序无结果

woodheadzh 发布于 2005-12-20 23:53, 662 次点击
ata segment ;define data segment
addr dw number
number dw 0fab8h
count dw ?
data ends
;*************************************************
prognam segment ;define code segment
;____________________________________________________
main proc far ;main part of program
assume cs:prognam,ds:data
start:
;set up stack for return
push ds
sub ax,ax
push ax
;set ds register to current data segment
mov ax,data
mov ds,ax
;main part of program goes here
mov cx,0
mov bx,addr
mov ax,[bx]
rotate:
test ax,0ffffh
jz exit
jns next
inc cx
next:
shl ax,1
jmp rotate
exit:
mov count,cx
ret
main endp
;______________________________________________________
prognam ends
;********************************************************
end start
操作系统:xp
编译软件:masm6.0
这个程序是测试number中1的个数。但是jns语句不起作用。到底是什么原因?请明示。谢谢。
1 回复
#2
dayong982005-12-21 23:20
回复:(woodheadzh)求助:xp系统下一汇编程序无结果...
data SEGMENT ;define data segment
addr DW 0fab8h
count DB 0
data ENDS
;*************************************************
prognam SEGMENT ;define code segment
;____________________________________________________
main PROC far ;main part of program
assume CS:prognam,DS:data
start:
;set ds register to current data segment
MOV AX,data
MOV DS,AX
;main part of program goes here
MOV AX,addr
MOV CX,16 ;测试AX中16位
rotate:
TEST AX,1h ; AX
JZ next ; A H A L
INC count ;0000 0000 0000 0001B
next:
SHR AX,1
LOOP rotate
main ENDP
prognam ENDS
END start
看下书上是怎么解释TEST的吧。(TEST AX,FFFFH)JNS在这里是没意义的。你要还没明白再问啊
1