ядерныйчел | Дата: Вторник, 12.02.2013, 21:54 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| 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
|
|
| |