С Новым годом! Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 23
MASM

Подскажите, пожалуйста, как исправить ошибки в коде (новичок)

17.02.2019, 18:11. Показов 1235. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Работаю с DOSBox 0.74-2 и MASM32.
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
CSEG segment
assume CS:CSEG, DS:CSEG, ES:CSEG, SS:CSEG
org 100h
 
Start:
    mov ax,3
    int 100h
    mov ax,0B800h
    mov es, ax
    mov al,1
    mov ah,31
    mov cx,254
 
Next_screen:
    mov di,0
    call Out_chars
    inc al
    loop Next_screen
 
    mov ah,100h
    int 16h
 
    int 20h
 
Out_chars proc
    mov dx,cx
    mov cx,2000
 
Next_face:
    mov es:[di],ax
    add di,2
    loop Next_face
 
    mov cx,dx
    ret
Out_chars endp
 
CSEG ends
end Start
Миниатюры
Подскажите, пожалуйста, как исправить ошибки в коде (новичок)  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2019, 18:11
Ответы с готовыми решениями:

Подскажите пожалуйста как исправить ошибки в коде метода доступа для чистой и синхронной Алохи
Ошибки подчеркнуты. В С# новичок, заранее очень благодарен за помощь using System; using System.Collections.Generic; using...

подскажите как исправить ошибки в коде C++(oop)
Программа реализует класс "треугольник" и всевозможные методы для него помогите исправить ошибки lb_1_oop_sam.h #ifndef...

Как исправить ошибки. Подскажите пожалуйста!
// пртотипы функций void cr_base(); void pr_base(int n); void cr_child(); void pr_child(); void ov_un(); void main_menu(); ...

8
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
18.02.2019, 07:52
А что ожидалось от последней программы? Она поочередно заполняет экран символами с кодами от 1 до 254.
0
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 23
18.02.2019, 15:54  [ТС]
Поочерёдно должны выводится смайлики разного типа, в зависимости от кода символа. Вот цитата из учебника:
Кликните здесь для просмотра всего текста
"В строке (09) заносим в cx число 254, сообщающее, сколько раз будет выполняться основной цикл. Строки (10) и (14) — "голова" и "хвост" нашего основного цикла соответственно. Значение di будет меняться во вложенной процедуре, поэтому нам необходимо будет его постоянно аннулировать (строка (11)). В строке (12) вызываем процедуру, выводящую на экран символ, код которого находится в al (при первом проходе цикла это будет символ "рожица" с кодом 01). Все! Теперь на экран будет выведен символ с кодом 01. При этом di будет равно 2001, поэтому нам и нужно его постоянно обнулять. Далее увеличим на единицу код символа, который находится в al. Во второй раз al будет содержать 02 — тоже "рожица", но немного другого вида (строка (13)). Затем уменьшим счетчик на 1 и перейдем к заполнению экрана кодом 02 (строка (14)). И так далее. Всего 254 раза. "
0
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 23
18.02.2019, 16:11  [ТС]
Порывшись на форумах, я немного изменила код, теперь он выводит одинаковые смайлики на синем фоне, а после нажатия клавишы изменяет фон и смайлики начинают "всплывать" в хаотичном порядке, как на скрине. Вот код:
Кликните здесь для просмотра всего текста
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
CSEG segment
assume cs:CSEG,ds:CSEG,ss:CSEG,es:CSEG 
org 100h
Begin:
mov ax,3
int 10h
 
mov ax,0b800h
mov es,ax
mov al,01
mov ah,31
mov cx,3h
Next_screen:
mov di,0
call Out_chars
inc al
call proc_Pause1 
loop Next_screen
mov ah,10h
int 16h
int 20h
 
Out_chars proc
mov dx,cx
mov cx,2000
Next_face:
mov es:[di],ax
add di,2
loop Next_face
 
mov cx,dx
ret
Out_chars endp 
 
proc_Pause1 proc 
;USES ax,bx,cx,dx — знаю, что глупо комментировать uses, но с ним выходит ошибка A2105
mov cx,5
mov dx,21000
mov ah,86h
int 21
;ret — если раскомментировать то на секунду появляются одинаковые смайлики, а потом чёрный экран
proc_Pause1 endp
 
CSEG ends
end Begin
Если закомментировать весь proc_Pause1 то программа заполняет весь экран "♥".
Миниатюры
Подскажите, пожалуйста, как исправить ошибки в коде (новичок)  
0
Заблокирован
18.02.2019, 17:12
int 100h это про что?

Добавлено через 17 минут
весь экран физиономиями залить?
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
.model small
.286
.code
start:
        mov ax, @data
        mov ds, ax   
        
        mov ax,3
        int 10h
        mov ax,0b800h
        mov es,ax
        xor si,si
        mov al,1
        mov cx,2000
go0:mov es:[si],al
        neg al
        add al,3
        add si,2
        loop go0        
 
        mov ah,8
        int 21h
        mov ah, 4ch
        int 21h
.stack 256
end start
1
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
18.02.2019, 19:32
Andreanna, согласно Правилам форума:
4.4 На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
4.7 Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.
Ваши первая и вторая программы создавала ощущение предыдущего этапа создания третьей программы, поэтому я и не разделил тему сразу.
Совершенно непонятно происходящее в этих программах и что от них ожидалось, поэтому каждый заходящий в тему начинал с вопроса: "А что вам не нравится?"

Итак, уясните:
- одна тема - один вопрос,
- поясняйте вопрос.

CoderPC, хорошо, что Вы лично знаете Ассемблер. В данной теме ТС (топикстартер) показывает собственные наработки, сами наработки имеют малый размер, позволяющий их анализировать и помочь именно с устранением ошибки. Вместо помощи, Вы, ничего не объяснив, даёте собственный код - ТС, несмотря на желание, не разобрался в ошибках.
Кроме того, в теме уже начал помогать murderer, пусть бы он и продолжал, Вы могли бы дополнить его ответы или просто указать на ошибки в коде, но готовое решение в данной конкретной теме - и отогнало murderer и помешало ТС. Конечно, до крайностей ни одно правило доводить не стоит.

Итак:
- не сбивайте настрой на изучение у ТС,
- будьте этичнее по отношению к соседям по форуму
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
18.02.2019, 20:26
Перечисление в uses через пробел, а не запятую и требует режима упрощённой сегментации. Замените отправкой в стек с последующим извлечением
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
proc_Pause1 proc 
;USES ax,bx,cx,dx — знаю, что глупо комментировать uses, но с ним выходит ошибка A2105
push ax
push bx
push cx
push dx
 
mov cx,5
mov dx,21000
mov ax,8600h ;т.к. int 15h/ah=86h глючит при al<>0
int 21
 
pop dx
pop cx
pop bx
pop ax
 
ret ;— если раскомментировать то на секунду появляются одинаковые смайлики, а потом чёрный экран
proc_Pause1 endp
Кроме того, Глюки с ah=86h/int 15h (странное поведение)
1
0 / 0 / 0
Регистрация: 06.11.2018
Сообщений: 23
18.02.2019, 20:44  [ТС]
Выходят ошибки A2105 & A2050
Миниатюры
Подскажите, пожалуйста, как исправить ошибки в коде (новичок)  
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8647 / 4482 / 1669
Регистрация: 01.02.2015
Сообщений: 13,889
Записей в блоге: 12
18.02.2019, 20:54
Вам доступен текстовый файл с листингом - публикуйте фрагменты из него. Или публикуйте исходник с указанием ошибок.
Не нужны скрины для ломки глаз.

Внимательно читайте:
- uses заменяется на несколько push и pop
- регистр AX
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2019, 20:54
Помогаю со студенческими работами здесь

Исправить ошибки в коде, пожалуйста!
Ребята, помогите мне с задачей, пожалуйста. Я запуталась, никак решить не могу. Необходимо скомпилировать в Visual Studio. Не получается,...

Помогите, пожалуйста, исправить ошибки в коде
const int n=20; int b; int i,j,c; for (i=1;i&gt;n,i++) { c=a; for(j=i-1;j&gt;=0&amp;&amp;a&gt;c;j--) a=a; a=c; }

Пожалуйста нужно исправить ошибки в коде или написать его заного
Тема курсовой роботы: Разработка программы для численного решения уравлений методом половинного деления Помогите пожалуйста написать...

Я новичок, обьясните пожалуйста ошибки
Почитал учебники. Скачал 6 вижуал. забабахал вот такой код, а программа даж не компилируется(( #include &lt;stdio.h&gt; #include...

Как исправить ошибки в коде
Не могу понять что не так. Помогите пожалуйста. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iomanip&gt; using namespace std; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru