Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Работа с каталогами в EMU8086 Есть программа, она выводит второй фaйлик в kaталогe. Хочу сделать .exe файл. В ТАСМЕ всё работает отлично, а вот мне нужно чтобы в EMU8086 Оно работало, вроде бы ошибок нет, но результат не выдает .model tiny .data msgpathrequest db 0Ah, 0Dh, "Enter the full directory name: $" msgnomorefiles db 0Ah, 0Dh, "No files found in current directory$" msgnosuchdir db 0Ah, 0Dh, "No such... https://www.cyberforum.ru/ asm-beginners/ thread1670590.html Assembler Где скачать TASM или MASM для Win 10 64 разряда
Где скачать TASM или MASM для Win 10 64 разряда ???? Хочу выучить ассемблер не не знаю где скачать tlink, td, tasm... =( Те что есть у меня не работают. По братский дайте верное направление =\
Assembler Как создать COM-файл? Здравствуйте. ; Programm Hello3 .MODEL SMALL .CODE org 100h begin: jmp start Hello DB 'Hello!$' start: LEA DX,Hello MOV AH,09h https://www.cyberforum.ru/ asm-beginners/ thread1670434.html Assembler NeuroMatrix программирование, свертка изображения Здравствуйте, есть задание написать программу на специфичном ассемблере NM6403, тема - свертка изображения. По сути все просто - умножать матрицу на маску 3x3 по специальной формуле, так чтобы изменился только средний элемент матрицы, но на практике возникли проблемы. Например как подгружать только часть матрицы (не понимаю где она будет храниться, там только теневая и рабочая матрицы по 64 бита,... https://www.cyberforum.ru/ asm-beginners/ thread1670410.html
Заменить буквой "а" все элементы символьной матрицы, лежащие выше главной диагонали Assembler
Новичок. Есть задача. Помогите с написанием кода, в Delphi или с++ было бы довольно просто все сделать но с Assemblerom столкнулся впервые, имею только базовые знания написания Hello World. Задание: Дана символьная квадратная матрица порядка 10. Заменить буквой "а" все элементы, лежащие выше главной диагонали.
Assembler Определить количество слов в заданном тексте https://www.cyberforum.ru/ asm-beginners/ thread1670209.html
Собственно задание - Дан текст. Определить, сколько в нем слов. В ассемблере новичок. Интересует готовый код, чтобы разобрать построчно как и что работает. Нашел такой пример(но получил ошибки, скрин прикреплен): .486 .model flat, stdcall option casemap: none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\fpu.inc
Assembler Изменить название .exe файла https://www.cyberforum.ru/ asm-beginners/ thread1670189.html
Добрый день, возникла одна проблема. Есть некая программа, под названием LagUnlocker.exe ( это программа, которая дает разблокировать значения сетевых настроек в Star wars : jedi academy, т.е. если кто знает существует команда cl_timenudge и ее потолок -30, то она дает тебе ставить значение выше -30.). Суть проблемы такая, программа начинает работать в том случае, если видит запущенную игру с...
Вывод на экран побуквенно Assembler
Помогите пожалуйста, не могу понять как сделать, чтоб на экране появлялись букви, а не что-то другое. title Organizaciya cikla c pomoshi jcxz model small .stack 100h .data len equ 6; array db 49h,76h,61h,6Eh,6Fh,76h mess db 'Moya familiya: ', '$' CRLF db 0Dh, 0Ah, '$'
Assembler Вывод символов таблицы ASCII в указанном диапазоне (программа выводит только один символ) https://www.cyberforum.ru/ asm-beginners/ thread1669225.html
Написать com-программу, которая выведет запрос о коде начальной и конечной букв из ASCII-таблицы и выведет на экран только те буквы, которые окажутся между ними. TASM, для DOS. Помогите пожалуйста!
Assembler Внешние процедуры для "hello world" Как написать внешнюю процедуру для hello word (можно любую другу программу) просто не понятен сам смыл кода, и как это дело компилировать ? искал ничего подходящего не нашёл... .MODEL SMALL .STACK 100h .DATA HelloMessage DB 'Hello World',13,10,'$' .CODE START: mov ax,@data https://www.cyberforum.ru/ asm-beginners/ thread1668818.html
Assembler Вывод на экран
Зравствуйте. Не пойму почему на экран ничего не выводиться: title Организация цикла с помошью jcxz model small .stack 100h .data len equ 14 array db 3,0,7,9,0,4,5,0,1,0,10,2,0,4 mess db 'Нолевых элементов:','$' CRLF db 0Dh,0Ah,'$'
Assembler Программа, которая выводит на экран последние 16 символов ASCII-таблицы в виде матрицы 4х4 (ТАSМ). Ребят, помогите пожалуйста, необходимо написать com-программу, которая выводит на экран последние 16 символов ASCII-таблицы у выгляди матрицы 4х4.(ТАSМ) Очень прошу =) Есть исходный код, который должен выводить матрицу 16 на 16. Но увы у меня не получилось его правильно реализовать. Думал его переделать. model tiny .code .startup mov cl,16 mov ch,16 mov... https://www.cyberforum.ru/ asm-beginners/ thread1668112.html
Эксперт Hardware
Эксперт Hardware
6105 / 2349 / 390
Регистрация: 29.07.2014
Сообщений: 3,110
Записей в блоге: 4
05.03.2016, 20:50 0
TASM

Найти сумму элементов столбца матрицы, содержащего максимальный по модулю элемент - Assembler - Ответ 8842822

05.03.2016, 20:50. Показов 3597. Ответов 36
Метки (Все метки)

Ответ

Не знаю что там с TASM'ом, но на фасме я решил эту задачу так..
Ошибки толком не обрабатывал,..только фильтр чисел. Но если умышленно не вводить неправильные данные - вроде работает. Массив заполняется/выстаивается автоматом, только вводи числа: положительные без плюса, отрицательные с минусом. Может найдёшь в нём что-то полезное:

Кликните здесь для просмотра всего текста

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
org 100h
jmp  start
 
hello   db  13,10,' CREATE ARRAY'         ; мессаги всякие
        db  13,10,25 dup('~'),13,10,'$'   ;
result  db  13,10,25 dup('~')             ;
        db  13,10,' MAX ELEMENT: $'       ;
summ    db  13,10,' COLUMN SUMM: $'       ;
array   db  12 dup(0)           ; место под массив (3х4)
max     db  1,0                 ; переменная для максимального (с позицией в массиве)
flag    db  0                   ; флаг отрицательного числа
 
start:
   mov   ah,9                 ;
   mov   dx,hello             ;
   int   21h                  ;
;=============================; ЗАПОЛНЯЕМ МАССИВ ============================
   mov   cx,12                ; всего 12 элементов (счётчик цикла)
   xor   bx,bx                ; BX = 0 (будет счётчиком столбцов)
   mov   di,array             ; адрес начала массива (для STOSB)
cycle:                        ;
   mov   al,' '               ;
   int   29h                  ; вставляем пробел/разделитель
   call  ASC2HEX              ; функция ввода числа с клавиатуры
   cmp   al,[max]             ; число больше переменной?
   jb    minimal              ; нет - пропускаем его
   mov   [max],al             ; иначе: отправляем его в переменную,
   mov   [max+1],cl           ; ..с сохранением позиции элемента в массиве
minimal:                      ;
   cmp   [flag],0             ; проверка флага на отрицательное число
   jz    miss                 ; если он сброшен - число положительное
   neg   al                   ; иначе: переводим число в NEGATE.
miss:                         ;
   stosb                      ; записываем это число в массив
   inc   bx                   ; счётчик столбцов +1
   cmp   bx,3                 ; это 4-ый столбец?
   jnz   next                 ; нет - продолжаем ввод чисел
   xor   bx,bx                ; да  - сбрасываем счётчик столбцов,
   mov   al,10                ; ...и перевод строки
   int   29h                  ;
next:                         ;
   mov   [flag],0             ; сбрасываем флаг для сл.числа
   loop  cycle                ; мотаем цикл СХ-раз..
                              ;
;=============================; ВЫВОДИМ НА ЭКРАН МАКС.ПО-МОДУЛЮ =============
   mov   ah,9                 ;
   mov   dx,result            ;
   int   21h                  ;
   mov   al,[max]             ; берём число в AL
   aam                        ; переводим его в распакованый DEC
   add   ax,3030h             ;     ..и в символьное представление
   xchg  ah,al                ;
   int   29h                  ;
   xchg  ah,al                ;
   int   29h                  ; выводим 2-значное число на экран!
                              ;
;=============================; ВЫЧИСЛЯЕМ НОМЕР СТОЛБЦА =====================
   mov   cx,12                ; сначала расчитываем позицию макс.эл в массиве
   sub   cl,[max+1]           ; позиция в CX!
   mov   ax,cx                ; ...она будет делимым
   mov   bx,3                 ; делитель (кол-во столбцов в массиве)
   xor   dx,dx                ; очищаем место под остаток
   div   bx                   ; DX = номер столбца!
                              ;
;=============================; НАХОДИМ СМЕЩЕНИЕ ПЕРВОГО ЭЛЕМЕНТА ===========
   mov   si,array             ; адрес начала массива (для LODSB)
   add   si,dx                ; SI = cмещение первого элемента в столбце!
                              ;
;=============================; СУММИРУЕМ ВСЕ ЭЛЕМЕНТЫ СТОЛБЦА ==============
   xor   ax,ax                ; сюда будем брать очередной элемент массива
   xor   bx,bx                ; здесь будет сумма
   mov   cx,4                 ; сколько элементов читать
adding:                       ;
   lodsb                      ; берём в AL байт из SI
   cbw                        ; расширяем байт до слова (byte2word)
   add   bx,ax                ; считаем сумму в ВХ
   add   si,2                 ; пропускаем 3 элемента (один пропустил LODSB)
   loop  adding               ; циклимся СХ-раз..
   push  bx                   ; запоминаем сумму в стеке!
                              ;
;=============================; ВЫВОДИМ СУММУ НА ЭКРАН ======================
   mov   ah,9                 ;
   mov   dx,summ              ;
   int   21h                  ;
   pop   ax                   ; снимаем сумму со-стека
   or    ax,ax                ; проверка суммы на отрицательное
   jns   ok                   ; если SF сброшен, то число положительное
   neg   ax                   ; иначе: перевод в положительное
   push  ax                   ;
   mov   al,'-'               ; выводим минус
   int   29h                  ;
   pop   ax                   ;
ok:                           ;
   call  HEX2ASC              ; и зовём функцию перевода чисел в символы!
                              ;
;=============================; ВЫХОД =======================================
exit:                         ;
   xor   ax,ax                ;
   int   16h                  ;
   int   20h                  ;
 
;нннннннннннннн ИСПОЛЬЗУЕМЫЕ ФУНКЦИИ нннннннннннннннннннннннннннннннннннннннн
;нннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн
ASC2HEX:                      ; Функция ввода чисел с клавиатуры
                              ; На выходе: AX = число
   push  cx bx si             ; эти регистры изменятся. сохраняем их
   xor   si,si                ; здесь будет число
   mov   bx,10                ; система счисления для сохранения
   mov   cx,2                 ; число будет 2-значное (макс.99)
typeDigit:                    ;
   xor   ax,ax                ; ждём символ с клавиатуры..
   int   16h                  ;
   cmp   al,'-'               ; это минус?
   jne   positive             ; нет - пропускаем его
   int   29h                  ; да  - выводим минус на экран,
   int   16h                  ;    ..и ждём сл.символ
   inc   [flag]               ;
positive:                     ;
   cmp   al,'0'               ; если это не числа 0..9,
   jb    typeDigit            ; ^
   cmp   al,'9'               ; ^
   ja    typeDigit            ; то циклимся.
   int   29h                  ; наш клиент! выводим его на экран
   and   ax,0Fh               ; переводим символ в число,
   xchg  ax,si                ;
   mul   bx                   ;
   add   si,ax                ; ..и копим его в SI
   loop  typeDigit            ;
   xchg  ax,si                ; AX = двузначное число по-модулю
   pop   si bx cx             ; восстанавливаем регистры
RET                           ; возвращаемся туда, от куда прибыли..
 
;нннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннннн
HEX2ASC:                      ; Функция переводит числа в символы
   pusha                      ; Вход:  АХ = число, BX = система счисления
   xor   cx,cx                ; счётчик разрядов числа
   mov   bx,10                ; система счисления (делитель)
isDiv:                        ;
   xor   dx,dx                ;
   div   bx                   ;
   push  dx                   ; остаток будет числом
   inc   cx                   ;
   or    ax,ax                ;
   jnz   isDiv                ;
isOut:                        ;
   pop   ax                   ; выводим его на экран
   add   al,30h               ;
   int   29h                  ;
   loop  isOut                ;
   popa                       ;
RET                           ; снимаем со-стека адрес возврата


Вернуться к обсуждению:
Найти сумму элементов столбца матрицы, содержащего максимальный по модулю элемент Assembler
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.03.2016, 20:50
Готовые ответы и решения:

Найти сумму элементов столбца, содержащего максимальный элемент массива В(4,4)
Помогите пожалуйста :cry: 1)Найти сумму элементов столбца, содержащего максимальный элемент...

Процедура: найти сумму для столбца матрицы и поделить ее на максимальный по модулю элемент столбца
Всем привет! Написал программу по процедурам, когда работает, когда не очень. Иногда деление на...

В матрице nxm найти сумму отрицательных элементов столбца содержащего максимальный элемент
В матрице nxm найти сумму отрицательных элементов столбца содержащего максимальный элемент и...

Найти максимальный по модулю элемент матрицы и вычислить сумму столбца, в котором он находится
Помогите найти ошибку, программа находит максимальный элемент правильно, но потом, когда нужно...

36
05.03.2016, 20:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.03.2016, 20:50
Помогаю со студенческими работами здесь

Найти максимальный по модулю элемент матрицы и вычислить сумму столбца, в котором он находится
Помогите, пожалуйста, найти и исправить ошибки в задаче: Найти максимальный по модулю элемент...

Найти сумму элементов столбца, содержащего наименьший элемент матрицы
Найти сумму элементов столбца в котором расположен наименьший элемент матрицы

Найти сумму элементов столбца, содержащего наименьший элемент матрицы
Подскажите в чем ошибка? Не правильный ответ, индекс все время равен 0. Задача: В действительной...

Найти сумму элементов столбца, содержащего наименьший элемент матрицы
В действительной матрице размером m×n найти сумму элементов столбца, содержащего наименьший элемент...

Найти сумму элементов столбца, содержащего наименьший элемент матрицы
В действительной матрице размером m×n найти сумму элементов столбца, содержащего наименьший элемент...

Найти сумму элементов столбца, содержащего наименьший элемент матрицы
В действительной матрице размером M x N найти сумму элементов столбца, содержащий наименьший...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru