Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
1

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл

17.12.2011, 22:48. Просмотров 1095. Ответов 3
Метки нет (Все метки)

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.model tiny; нужно будет получить исполняемый файл формата СОМ
.code
org 100h
start:
   mov ax, 3
   int 10h  ; устанавливаем текстовый режим
   
   lea dx, srcArray
   mov ah, 9
   int 21h
   
   cld      ; буду использовать строковые инструкции
    ; установим флаг направления
   mov cx, arsize
   lea si, ar
@@_next:
    lodsw
    CALL writeWordDEC_signed
    mov al, ' '
    int 29h
    int 29h
LOOP @@_next   
    ; определение минимального
    lea si, ar
    lodsw
    mov min_el, ax
    mov max_el, ax
 
    mov cx, arsize      
@@_analize_next:
      lodsw
      cmp ax, min_el
      jge @@20
      mov min_el, ax
@@20:
LOOP @@_analize_next
 
  lea dx, minElem
  mov ah, 9
  int 21h
  mov ax, min_el
  CALL writeWordDEC_signed
  
  lea dx, PressKey
  mov ah,9
  int 21h
 
  xor ax, ax
  int 16h
 
  int 20h
  
; две подпрограммы для вывода чисел на экран  
  writeWordDEC proc near
; вывод на экран слова в AX, воспринимается как беззнаковое
 push ax
 push bx
 push dx
 push cx
   mov bx, 10
   xor cx, cx
@@1:
   xor dx, dx
   div  bx
   push dx
   inc cx
   or ax, ax
   jnz @@1
 @@2:
   pop ax
   add al, '0'
   int 29h  ; это прерывание умеет делать только одно -
        ; выводить символ в AL на экран
   LOOP @@2    
 pop  cx
 pop  dx
 pop  bx
 pop  ax
 ret
writeWordDEC endp
 
WriteWordDEC_signed proc
; вывод на экран слова в AX как знакового
; просто, если отрицательное, выводит минус, превращает в
; положительное и вызывает подпрограмму writeWordDEC
 or ax, ax
 jns @@_no_sign 
   push ax
   mov al, '-'
   int 29h
   pop ax
   neg ax ; изменение знака на +
@@_no_sign:
 CALL writeWordDEC     
 ret
WriteWordDEC_signed endp 
 
PressKey db 13,10,10,'Press any key ...$'
 
srcArray db 'Исходный массив:',13,10,'$'
minElem  db 13,10,'Минимальный  элемент массива: $'
ar       dw 12, 23, -3, 4, 0, 7 ; сюда просто добавляйте числа, если хотите
arsize   equ ($ - ar)/2     ; так определяется констата = размер массива в словах (число элементов)
            ; $ - операция вычисления текущего адреса
min_el   dw  ?  
end start
помогите пожалуйста найти где ошибка.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2011, 22:48
Ответы с готовыми решениями:

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

Не могу разобраться с кодом.Составьте программу, которая создает и выводит на экран файл ZARPL.DAT
Составьте программу, которая создает и выводит на экран файл ZARPL.DAT, компоненты которого имеют...

Не могу разобраться с кодом в VB
Есть условие задачи и код программы, нужно объяснить, почему использовался именно этот код. Я...

Не могу разобраться с кодом
Не могу разобраться с участком кода, а именно зачем нужны "++" *buffer->DataEnd++ = data32;

Не могу разобраться с кодом
Нашел код с форума, которое написанное в Keil Uvision на камень stm32f103. Надо его переделать что...

3
Charles Kludge
Клюг
7647 / 3162 / 383
Регистрация: 03.05.2011
Сообщений: 8,382
17.12.2011, 23:02 2
стр. 105 - забыт max_el, tlink /t - компилится и работает
1
HEKPOMAHT
0 / 0 / 0
Регистрация: 18.11.2011
Сообщений: 32
17.12.2011, 23:06  [ТС] 3
ого, спасибо, огромное, а можете написать, как правильно должно быть? а то опять будут проблемы у меня((
0
vital792
2004 / 1276 / 60
Регистрация: 05.06.2010
Сообщений: 2,213
18.12.2011, 08:36 4
Цитата Сообщение от HEKPOMAHT Посмотреть сообщение
как правильно должно быть?
да все правильно, просто забыл саму переменную объявить:

max_el dw ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2011, 08:36

Не могу разобраться с кодом
Суть состоит в том чтобы составить программу, выводящую на экран расписание экзаменов и зачетов...

Не могу разобраться с кодом
У меня есть программа обучалка для детей. Суть такова: генерируется случайный пример из чисел a и b...

Не могу разобраться с кодом
Приветствую всех! Пишу по урокам и с помощью интернета (в том числе этого форума) парсер. Думал,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru