怎么这个程序会说我的是32位的,在16位下不行??
;Title: Binary notation;---------------------------------------------------------;Description: Anohter implementation of complemental code edition using bit scan reverse method;Author: ;Finish date:2007-11-16;Modify date:;Algorithm:用一个数组保存16个二进制的ASCII码,初值全设为'0'。从前往后扫描,如里为全'0'则可以; 输出再退出程序,若非'0'刚记下[这是一个数字'1'所在的位置,将字符数组相应设为'1',; 同时将扫描的二进制数的相应位设为0,再重新循环扫描。;----------------------------------------------------------.386data1 segment use16 ;Please input here the code of data segment val dw -28 msg db 16 dup('0'),13,10,'$ ' data1 ends stack1 segment use16 ;Please input here the code of data segment stack1 ends code1 segment use16 assume cs:code1,ds:data1,ss:stack1 start: mov ax,data1 mov ds,ax ;Please input here the code of code segment mov ax,[val] mov si,offset msg add si,15dscan: BSR cx,ax ;Scan the binary, get the subscript of bit 1 je quit ;If all bits are 0, then terminate the program BTR ax,cx ;set the bit 1 to zero sub si,cx ;Get the offset of the digit 1 mov byte ptr [si],'1' ;set '1 ' to the string mov si,offset msg add si,15d ;Reset address jmp scan quit: mov ah,9 mov dx,offset msg int 21h mov ah,4ch int 21h code1 ends end start