;-------------------------DEFINE DATA SEGMENT
DATA SEGMENT
STR DB 'please input a character:',0AH,0DH,'
ASCII DB 8 DUP(?),0AH,0DH,' DATA ENDS ;--------------------------DEFINE STACK SEGMENT STACK SEGMENT PARA STACK 'STACK' DB 50 DUP(?) STACK ENDS ;------------------------DEFINE CODE SEGMENT CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START PROC FAR BEGIN: PUSH DS MOV AX,0 PUSH AX ;------------------------- MOV AX,DATA MOV DS,AX ;--------------------------------THERE IS THE CODE THAT IS THE REAL PART. ;----------------First:Display the prompt info MOV DX,OFFSET STR MOV AH,09H INT 21H ;-----------------Display end ;----------------Second:Waitting for input MOV AH,00H INT 16H ;----------------After the codes above the line ,one character has been moved to ;----------------the register named AL ;----------------Third: THE CORE CODES MOV AH,0H; MOV BX, OFFSET ASCII+7 MOV CX,8H MOV DL,1 MOV DH,1 AGIAN: AND DL,AL CMP DL,0 JNZ PRESENT1 JZ PRESENT0 ;---------------- PRESENT0: MOV BYTE PTR [BX],'0' JMP NEXT ;---------------- PRESENT1: MOV BYTE PTR [BX],'1' JMP NEXT NEXT :DEC BX SAL DH,1 MOV DL,DH LOOP AGIAN ;---------------------------CORE CODES ENDS ;-----------DISPLAY RESULT MOV DX,OFFSET ASCII MOV AH,09H INT 21H ;--------------ENTER ANY KEY TO EXIT MOV AH,00H INT 16H ;MOV AH,09H ;INT 21H ;-------------------- RET START ENDP CODE ENDS END BEGIN