Задача - умножить введеные пользователем 10 чисел (макс 4значные) на одно и то же заданное число. Числа брать из файла .txt и результат выводить в другой файл .txt. Ниже программа с простым выводом/вводом на экран. Используем TASM/TLINK.(Assembler) TITLE ADD MULT NUM ;-------------------------------------- INPUT MACRO Y MOV AH,0AH LEA DX,Y INT 21H ENDM ;-------------------------------------- OUTPUT MACRO X MOV AH,09 LEA DX,X INT 21H ENDM ;-------------------------------------------- STACKSG SEGMENT PARA STACK 'Stack' DW 32 DUP(?) STACKSG ENDS ;------------------------------------------- DATASG SEGMENT PARA 'Data' ENT DB 'ENTER NUM','$' OUTP DB 'NEW NUM','$' NAMEPAR LABEL BYTE MAXLEN DB 5 ACTLEN DB ? NUMBERS DB 5 DUP(' ') BINVAL DW 0 MULT10 DW 1 NEW DW 20 DUP(' ') NEWS DB 6 DUP(' '),'$' NEXTSTR DB 10,13,'$' DATASG ENDS ;--------------------------------------------- CODESG SEGMENT PARA 'Code' BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG,SS:STACKSG PUSH DS SUB AX,AX PUSH AX MOV AX,DATASG MOV DS,AX OUTPUT ENT OUTPUT NEXTSTR LEA DI,NEW MOV CX,10 M0: MOV BINVAL,0 MOV MULT10,1 INPUT NAMEPAR CALL ASCBIN MOV AX,BINVAL MOV [DI],AX ADD DI,2 OUTPUT NEXTSTR LOOP M0 LEA DI,NEW MOV CX,10 M1: ADD [DI],5 ADD DI,2 LOOP M1 OUTPUT OUTP OUTPUT NEXTSTR LEA DI,NEW MOV CX,10 M2: PUSH CX PUSH SI LEA SI,NEWS MOV CX,5 M3: MOV AX,' ' MOV [SI],AX INC SI LOOP M3 POP SI POP CX MOV BX,[DI] CALL BINASC OUTPUT NEWS OUTPUT NEXTSTR ADD DI,2 LOOP M2 RET BEGIN ENDP ASCBIN PROC PUSH CX MOV CX,10 LEA SI,NUMBERS-1 MOV BL,ACTLEN XOR BH,BH M4: MOV AL,[SI+BX] SUB AX,30H XOR AH,AH MUL MULT10 ADD BINVAL,AX MOV AX,MULT10 MUL CX MOV MULT10,AX DEC BX JNZ M4 POP CX RET ASCBIN ENDP BINASC PROC PUSH CX MOV CX,10 LEA SI,NEWS+4 MOV AX,BX M5: CMP AX,10 JB M6 SUB DX,DX DIV CX ADD DX,30H MOV [SI],DL DEC SI JMP M5 M6: ADD AX,30H MOV [SI],AL POP CX RET ENDP ;--------------------------------- CODESG ENDS END BEGIN