Ассемблер
TITLE EX_PROG
PAGE ,132
STACK SEGMENT PARA STACK "STACK"
DB 64 DUP("STACK ") ; Область стека
STACK ENDS
DSEG SEGMENT PARA PUBLIC "DATA"
SOURCE DB 10,20,30,40 ; эта таблица будет скопирована
DEST DB 4 DUP(?) ; в эту таблицу в обратном порядке
DSEG ENDS
SUBTTL ОСНОВНАЯ ПРОГРАММА
PAGE
CSEG SEGMENT PARA PUBLIC "CODE"
ASSUME CS:CSEG, DS:DSEG, SS:STACK
OUR_PROG PROC FAR
;занести в стек такие начальные значения, чтобы программа
; могла возвратить управление отладчику
PUSH DS ; поместить в стек номер блока адреса возврата
SUB AX,AX ; обнулить регистр АХ, тоже можно сделать командой MOV AX,0
PUSH AX ; поместить в стек значение адреса возврата=0
; инициировать адрес сегмента данных
MOV AX,DSEG
MOV DS,AX
; присвоить элементам таблицы DEST нулевые начальные значения
MOV DEST,0 ; обнуление 1-ого байта
MOV DEST+1,0 ; обнуление 2-ого байта
MOV DEST+2,0 ; обнуление 3-его байта
MOV DEST+3,0 ; обнуление 4-ого байта
; скопировать таблицу SOURCE в таблицу DEST в обратном порядке, в качестве промежуточной ячейки пересылки использовать регистр AL
MOV AL, SOURCE
MOV DEST+3,AL
MOV AL, SOURCE+1
MOV DEST+2,AL
MOV AL, SOURCE+2
MOV DEST+1,AL
MOV AL, SOURCE+3
MOV DEST,AL
RET ; возврат управления отладчику db
OUR_PROG ENDP
CSEG ENDS
END OUR_PROG
помогите сделать задание а то я вообще не представляю как делать
5.Внести в программу следующие изменения: задать исходную таблицу SOURCE из 5 двухбайтовых шестнадцатеричных переменных и скопировать эту новую таблицу в DEST.
6. В сегменте данных определить переменные, заполнив их следующими значениями:
- 5 байтов A, B, C, D, E;
- 5 двухбайтовых слов AA, BB, CC, DD, EE;
- 5 двойных слов AAAA, BBBB, CCCC, DDDD, EEEE;
7. Получить исполнимый файл программы с данными пункта 6 и изучить дамп памяти данных с целью уяснения механизма выравнивания.
SOURCE DW 10,20,30,40,50 ; эта таблица будет скопирована
DEST DW 5 DUP(?) ; в эту таблицу в обратном порядке
...
MOV DEST+4,0 ; обнуление 5-ого байта
...
изменить Al->AX, дописать 5 элемент
MOV AX, SOURCE+4
MOV DEST,AX
6.
fiva_byte db 'A','B','C','D',E'
five_word dw 'AA','BB',CC','DD',EE
five_dword dd 'AAAA','BBBB','CCCC','DDDD','EEEE'
7. я не знаю на чем ты пишеш программу
8. Есть спец разделы (студентам и низкоуровневое программирование), зачем то здесь тему создавать
спасибо))