След като прочета байт от файл в асемблиране, текущата файлова позиция се актуализира. Как мога да искам да променя този байт и след това да го запиша във файла на същата позиция, от която го чета? Работя в tasm на x8086
READ_LOOP:
MOV AH,3FH
MOV BX, HANDLE
MOV CX, 1
LEA DX, BUFFER
INT 21H
INC SI
;if no byte was read we reached the end of file or an error occured
CMP AL, 1
JB EOF_END_ERR
;write the read content to output
;MOV AH, 02H
;MOV DL, BUFFER
;INT 21H
JMP ENCRYPTING
JMP FINAL
ENCRYPTING:
XOR AX,AX
MOV DL, BUFFER[0]
ADD DL, NUMBER[0]
MOV TEMP, DL
MOV AH, 42H
MOV BX, HANDLE
MOV CX,0FFFFH
MOV DX, 0FFFFH
MOV AL,1
INT 21H
XOR DX,DX
MOV DL, 65
MOV BX, HANDLE
MOV CX,1
MOV AH, 40H
INT 21H
JMP READ_LOOP
Опитах с кода по-горе просто да добавя NUMBER[0] към ASCII кода на прочетения байт и след това да го запиша обратно във файла. Но не пише това, което трябва във файла
int 21h
означава, че това е 16-битова DOS програма, така че са налични само сервизни функции на DOS и BIOS. - person Peter Cordes   schedule 12.12.2017int 21h
. Маркирането му помага на другите да го намерят. - person Daniel H   schedule 12.12.2017