LCME Пятница, 29.03.2024, 09:34
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Для истинных фанатов » Ассемблер » Надо понять где ошибки , и как их исправить (Не играет=()
Надо понять где ошибки , и как их исправить
ядерныйчелДата: Вторник, 12.02.2013, 21:54 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 1
Репутация: 0
Статус: 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
 
Форум » Для истинных фанатов » Ассемблер » Надо понять где ошибки , и как их исправить (Не играет=()
  • Страница 1 из 1
  • 1
Поиск:

Copyright Freidom © 2024 Хостинг от uCoz