После того, как я прочитал байт из файла в сборке, текущая позиция в файле обновляется. Как я могу изменить этот байт, а затем записать его в файл в той же позиции, из которой я его прочитал? Я работаю в 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
. Пометка dos помогает другим найти его. - person Daniel H   schedule 12.12.2017