Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2016, 13:40   #1
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию Обнуления массива слов

Задание такое:
Написать программу обнуления массива слов длинною 100 элементов, используя все возможные режимы адресации.
Написал код:
Код:
data segment
massiv dw 1,-2,3,4,5,6,7,8,9
data ends
code segment
assume es:data, cs:code
start:
push ds
pop es
lea di,massiv
xor ax,ax
mov ax,3
int 10h
code ends
end start
Подскажите, пожалуйста, правильно ли я написал код? И почему когда я в dos-box'е tlink этого кода то выбивает Warning: No stack?
Max00766 вне форума Ответить с цитированием
Старый 13.05.2016, 14:32   #2
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Исправил код, прошу проверить:
Код:
.model small
.386
.stack
.data
massiv dw 1,-2,3,4,5,6,7,8,9
arr_sz  = ($-massiv)/2
.code
start:
    mov ax, @data
    mov ds, ax
    mov es, ax
    lea di, massiv
    mov cx, arr_sz
    xor ax,ax
    rep stosw
    mov ax,4c00h
    int 21h
end start
Max00766 вне форума Ответить с цитированием
Старый 13.05.2016, 14:34   #3
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

И как вывести обнуленный массив?
Max00766 вне форума Ответить с цитированием
Старый 13.05.2016, 19:03   #4
R71MT
Участник клуба
 
Аватар для R71MT
 
Регистрация: 16.06.2011
Сообщений: 1,428
По умолчанию

Цитата:
Сообщение от Max00766 Посмотреть сообщение
обнуления массива слов длинною 100 элементов, используя все возможные режимы адресации.
Код:
;;== FASM code =======================

org 100h
jmp start

array   dw  100 dup(?)

start:
; Clear array ========================
      mov   si,array
      mov   cx,100
      push  cx si
clr:  shr   word[si],16
      add   si,2
      loop  clr

; Print array ========================
      pop   si cx
prn:  lodsw
      or    ax,3030h
      int   29h
      xchg  ah,al
      int   29h
      loop  prn

; Exit ===============================
exit:
      xor   ax,ax
      int   16h
      int   20h
Нашедшего выход - затаптывают первым..
R71MT вне форума Ответить с цитированием
Старый 15.05.2016, 09:57   #5
Max00766
Форумчанин
 
Регистрация: 15.11.2015
Сообщений: 151
По умолчанию

Цитата:
Сообщение от R71MT Посмотреть сообщение
Код:
;;== FASM code =======================

org 100h
jmp start

array   dw  100 dup(?)

start:
; Clear array ========================
      mov   si,array
      mov   cx,100
      push  cx si
clr:  shr   word[si],16
      add   si,2
      loop  clr

; Print array ========================
      pop   si cx
prn:  lodsw
      or    ax,3030h
      int   29h
      xchg  ah,al
      int   29h
      loop  prn

; Exit ===============================
exit:
      xor   ax,ax
      int   16h
      int   20h
Спасибо за помощь, увидел свои ошибки
Max00766 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка массива слов по алфавиту elivartar Общие вопросы C/C++ 5 06.07.2016 07:20
подпрограммма обнуления отрицательных чисел массива Pascal ABC программирование Помощь студентам 1 04.06.2013 08:26
Макрос копирования и обнуления Emmanuel Microsoft Office Excel 7 26.10.2012 11:11
сортировка массива слов по алфавиту elivartar Общие вопросы C/C++ 1 26.12.2011 17:33
Кнопка обнуления Pabelu Microsoft Office Excel 6 15.04.2008 17:09