С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler: DOS/Real Mode/16-bits
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Assembler Пошаговые действия Здравствуйте! Умные люди, опишите пожалуйста пошаговые действия, чтобы проверить работу программы в отладчике AFD, начиная с создания .asm файла, относительно моего текста (желательно используя MASM и LINK). Name Proga ; описание констант ; описание переменных Data segment x1 dd 100 DUP (?) ; входной массив Y1 dd 100 dup (0) ; выходной массив F1 dw... https://www.cyberforum.ru/ assembler-dos/ thread768232.html Сред арифметическое элементов массива, стоящих на каждом третьем месте Assembler
Дан одномерный массив. Размер массива и его элементы вводятся пользователем с клавиатуры. Результат работы программы выводится на экран. Составить программу, определяющую среднее арифметическое элементов массива, стоящих на каждом третьем месте.
Assembler Массив Объясните пожалуйста пример поэтапно, что за что отвечает. С линейными как то проблем нету, а с массивами не очень. .MODEL small .STACK 256 .DATA c db 5 d db 7 mas DB 2,3,6,8,11 https://www.cyberforum.ru/ assembler-dos/ thread767106.html Assembler Выполнение простых арифметических команд https://www.cyberforum.ru/ assembler-dos/ thread763515.html
Прошу помочь с программой,потому что этот язык програмирования мне не известен a*b-c Размерность данных-слово.Размер массива-4.Место хранения массива-адреса второго массива. Заранее благодарен=)
Assembler Ввести с клавиатуры массив из n байт.Подсчитать кол-во нулевых значений массива,результат вывести на экран
Помогите пожалуйста с программой: Ввести с клавиатуры массив из n байт.Подсчитать кол-во нулевых значений массива,результат вывести на экран
Assembler Дан массив P[0..k]. Определить сколько элементов удовлетворяют неравенству А<Р[i]<В. Используйте косвенную регистровую адресацию. Дан массив P. Определить сколько элементов удовлетворяют неравенству А<Р<В. Используйте косвенную регистровую адресацию. Заранее благодарю. https://www.cyberforum.ru/ assembler-dos/ thread761842.html
Assembler Определить сколько элементов удовлетворяют неравенству А<Р[i]<В https://www.cyberforum.ru/ assembler-dos/ thread761337.html
Дан массив P. Определить сколько элементов удовлетворяют неравенству А<Р<В. Используйте косвенную регистровую адресацию. Заранее благодарю.
Определение кратности позиции в массиве Assembler
Есть задача, задание: Разработать программу, вычисляющую сумму элементов массива, стоящих на нечетных местах. Количество элементов в массиве – 10. допустим массив состоит из 1,2,3,4,5,6,7,8,9,10, допустим мы можем к каждому элементу массива прибавить единицу, и те числа которые поделятся на 2 без остатка и будут находиться на нечётных позициях. Так же есть мысль что можно где-то в районе счётчика...
Assembler Программа печатающая текст - не работает конечный цикл https://www.cyberforum.ru/ assembler-dos/ thread758913.html
Проблема в том, что не работает тут: 00000000 31C0 xor ax,ax 00000002 CD16 int 0x16 00000004 91 xchg ax,cx 00000005 6800B8 push word 0xb800 00000008 1F pop ds 00000009 31C0 xor ax,ax 0000000B CD16 int 0x16 0000000D 8807 mov ,al 0000000F E2F4 loop 0x5
Assembler Перехват int 21h com 16 bit .286 ASKII_code_key_check equ 'A' ASKII_code_key equ 'B' number_handler_int21_02h equ 02h number_handler_int21_06h equ 06h .model tiny ; модель памяти, используемая для СОМ .code ; начало сегмента кода org 100h ; начальное значение счетчика - 100h https://www.cyberforum.ru/ assembler-dos/ thread758592.html
Assembler Резидентная программа, которая сортирует введенные из текстового файла имена по алфавиту
Составить резидентную программу, которая сортирует введенные из текстового файла имена по алфавиту. Имена расположены в произвольном порядке. Имя файла *txt задается в командной строке. Отсортированный список записывается в новый файл на диске либо выдается на экран монитора. Как считать данные из файла? Куда сохранять промежуточные результаты сортировки? Как записать отсортированные данные в...
Assembler Задача на выражение с ветлвлением и на массивы https://www.cyberforum.ru/ assembler-dos/ thread757385.html
1. Условие задачи первое в прикрепленном файле. По оформлению задачи все есть, а вот непосредственно решить не могу:) stsg segment para stack 'stack' dw 32 dup(?) stsg ends; Определяем сегмент данных dssg segment para 'data' x dw 3 y dw ?
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 37
22.01.2013, 19:03  [ТС] 0

Как реализовать ввод размера массива и его элементов с клавиатуры? - Assembler - Ответ 4039482

22.01.2013, 19:03. Показов 8895. Ответов 13
Метки (Все метки)

Ответ

Спасибо! Я пока нашел вот такое:
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
152
153
154
155
156
157
158
159
        
data segment                                                      
message1 db "Введите размер массива: $"
message2 db "Введите элементы массива: $"
message3 db 13,10,"Ср.Арифметическое: $"  
 
n   db 0                           
mas db 400 dup(?)   ; массив               
i   db 0                           
flag db 0
first db 0 
second db 0     
data ends 
stk segment stack        
 db 256 dup(?)           
stk ends                 
assume cs:code, ds:data, ss:stk    
code segment                                
main:                              
    mov  ax,data     ; присваиваем ds адрес начала сегмента данных                                       
    mov  ds,ax                     
                                   
    mov   ah,9h       ; вывод приглашения к вводу
    lea   dx,message1                                 
    int   21h                      
                                   
 inputN:                                                    
    mov   ah,1                                 
    int   21h         ; ввод символа с клавиатуры
   AfterPressN:                     
    cmp   al,13       ; проверка на нажатие Enter
    je    endInputN   ; если нажат Enter конец ввода
    sub   al,30h                   
    mov   bl,al                    
    mov   bh,10                    
    mov   al,n                     
    xor   ah,ah                    
    mul   bh          ; умножаем уже введенное число на 10
    add   al,bl       ; суммируем с введенной цифрой
    mov   n,al                     
    jmp  inputN                    
 endInputN:                        
                                   
    ; перевод строки                                    
    mov  ah,2        ; заносим в ah номер функции       
    mov  dl,10       ; в dl - код перевода строки       
    int  21h         ; вывод символа                    
                            
    mov   ah,9h      ; вывод приглашения к вводу
    lea   dx,message2               
    int   21h                                                          
                      
         ; заполнение массива                           
    mov   si,0       ; адрес смещения относительно начала  
    mov   cl,n       ; счетчик цикла
create:               
    mov   flag,0                              
    xor   dl,dl       
    mov   ah,1        
    int   21h          
    cmp   al,'-'     ; проверяем на наличие минуса
    jne   AfterPressDl   
    mov   flag,1                                            
 inputDl:                                               
    mov   ah,1                                          
    int   21h         ; ввод символа с клавиатуры       
   AfterPressDl:                                        
    cmp   al,13       ; проверка на нажатие Enter       
    je    endInputDl  ; если нажат Enter конец ввода    
    sub   al,30h                                        
    mov   bl,al                                         
    mov   bh,10                                                        
    mov   al,dl                                         
    xor   ah,ah                                         
    mul   bh          ; умножаем уже введенное число на 10
    add   al,bl       ; суммируем с введенной цифрой    
    mov   dl,al                                         
    jmp  inputDl                                        
 endInputDl:          
    cmp   flag,1      ; если изначальное был введен минус
    jne   NotMinus          
    neg   dl          ; изменяем знак
  NotMinus:          
    mov   mas[si],dl  ; записываем в массив число
                                                            
    ; перевод строки                                    
    mov  ah,2       ; заносим в ah номер функции 
    mov  dl,10      ; в dl - код перевода строки
    int  21h        ; вывод символа
                                                        
  end_loop:         ; окончание цикла                   
    inc  si         ; увеличиваем смещение              
    loop create     ; цикл по счетчику cl               
                    
                                 
                     
    call Change      
                 
    mov al,first
    mov dl,second
    cwd
    div dl
    ;вывод на экран
    
       ; перевод строки                                    
    mov  ah,2        ; заносим в ah номер функции       
    mov  dl,10       ; в dl - код перевода строки       
    int  21h         ; вывод символа            
 aam 
    add ax,3030h 
    mov dl,ah 
    mov dh,al 
    mov ah,02 
    int 21h 
    mov dl,dh 
    int 21h
mov ah,0
int 16h
                                      
    mov  ah,10h      ; ожидание нажатия клавиши     
    int  16h                                        
exit:                                               
    mov  ax,4c00h    ; выход                          
    int  21h                                        
                                                    
Change proc                                         
    mov si,0                                        
    mov bl,mas[si]                                  
                                      
  prepare_for_change: ; подготовка к изменению массива
    mov  si,0         ; смещение обнуливается          
    mov  cl,n         ; счетчик цикла - число элементов в массиве
    xor  ch,ch       
                                    
changing:            
    mov  ax,si        ; переносим в ax номер элемента
    mov  dl,3         ; dl = 3 - заменяем каждый 3-й элемент
    div  dl           ; делим
    cmp  ah,0         ; сравниваем остаток от деления с 0
    jne  nextIterationChange ; если не равен 0, то номер не кратен 3, переходим на следующую итерацию
                        ; если равен 0, значит номер элемент кратен 3
    mov dl,first
    add dl,mas[si]
    mov first,dl
    mov dl,second
    add dl,1
    mov second,dl
                                                        
  nextIterationChange: ; подготовка к следующей итерации
    inc  si           ; увеличение счетчика                       
    loop changing     ; переход на следующую итерацию
                     
                                         
    ret              
Change endp          
                                            
                                    
code ends               
end main
Добавлено через 1 минуту
Только код не работает немного, и я не пойму где косяк

Вернуться к обсуждению:
Как реализовать ввод размера массива и его элементов с клавиатуры? Assembler
0
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2013, 19:03
Готовые ответы и решения:

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

Ввод размера массива с клавиатуры
Доброго времени суток! Возникли трудности с написанием программки ,а именно с определением размера...

Как сделать ввод элементов массива с клавиатуры?
Всем привет. Препод пристал что бы я сделал так что пользователь задавал значение элементов с...

Как реализовать ввод элементов массива на JS?
Например вводим элементы массива -это правильно а1а-первый элемент, п3о-второй и т.д Как мне...

13
22.01.2013, 19:03
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.01.2013, 19:03
Помогаю со студенческими работами здесь

Ввод размера массива и создание его по нажатию кнопки
Добрый день. Столкнулся с такой проблемкой: на форме находятся TextBox и Button; в TextBox вводится...

Написать на VBA процедуру АКРОСТИХ, организующую ввод с клавиатуры 8 слов как элементов массива
Написать на VBA процедуру АКРОСТИХ, организующую ввод с клавиатуры 8 слов как элементов массива и...

Как грамотно реализовать многострочный ввод с клавиатуры
Как грамотно реализовать многострочный ввод с клавиатуры и затем подсчет, сколько раз встречается...

Как реализовать ввод с клавиатуры в динамическую память?
Я написал код программы, нахождение корней квадратного уравнения, где a, b, c находятся в...

0
Новые блоги и статьи
Как написать микросервис на Go/Golang
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C#
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru