2014-12-05 4 views
0

У меня есть этот кодАссамблея MASM: Запись в файл

mov dx,offset writeme ; address of information to write 
mov bx,handle   ; file handle for file 
mov cx,38    ; 38 bytes to be written 
mov ah,40h    ; function 40h - write to file 
int 21h     ; call dos service 

для записи в файл. Здесь writeme является переменной, размер которой равен dw, поэтому он совместим с переходом на dx .. . Моя проблема в том, что у меня есть переменная, размер которой равен db, как я могу использовать код таким образом, чтобы я мог перемещать это значение db переменная до dx? Благодаря!

ответ

0

Вы не перемещаете значение writeme в dx. Вы перемещаете свой адрес (или его смещение, если быть точным) в dx. Размер смещения будет таким же, независимо от размера данных, на которые он указывает.

+0

Я делаю это так, mov dl, offset writeme; адрес информации для записи mov bx, handle; дескриптор файла для файла mov cx, 38; 38 байт, которые будут записаны mov ah, 40h; function 40h - записать в файл int 21h; call dos, но он все еще не работает – jamescruz

+0

Вы должны использовать 'dx', а не' dl'. Как я уже сказал, размер смещения одинаковый независимо от размера данных, на которые он указывает. – Michael

+0

Я получаю сообщение об ошибочных операндах команд. – jamescruz

Смежные вопросы