Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 84

Div не работает

09.11.2016, 21:50. Показов 3416. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Буду очень благодарен с помощью в решении моей проблемы, т.к. копаюсь с ней уже очень долго.

Короче говоря, всё работает хорошо. Но, как только перед выводом числа, а выводом числа из ах, (а выводом у меня служит функция digit) поставить div, будь то целое или не целое число в результате, функция должна вывести ах, НО прога просто открывается на милисекунду и тут же закрывается. Внизу в коде есть пауза. Без div всё работает отлично. В чём проблема?
Может надо переделать функцию вывода (digit)?

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
160
161
162
163
stseg segment para stack "stack" 
db 64 dup ( "stack" )
stseg ends 
 
dseg segment para public "data" 
num dw -12345 
pause db 2,?,2 
error db "incorrect number $" 
buff    db 5,?,5 Dup(?) 
mpp db 13,10,"Please, enter (x) from 999 to 999: $" 
bad_input db 'Incorrect input!',13,10,'$'
error_massage db "Sorry, this program can't calculate your values. Result may be greater than 32767 or lover than -32768!",13,10,'$'
input db 8,?,8 Dup ('$')
coma db ',',13,10,'$'
is_negative db 0
var_x dw 0  
var_y dw 0 
var dw 10
qs  db 0Dh,0Ah,24h 
dseg ends 
 
cseg segment para public "code" 
main proc far 
assume cs:cseg, ds:dseg, ss:stseg
push ds 
xor ax,ax 
push ax 
mov ax,dseg 
mov ds,ax 
 
mov ax,03
int 10h         
    
    
 
    mov ax,6
    mov bx,2
 
    div bx  ;ВОТ ЭТОТ МОМЕНТ В КОДЕ
    push ax
    call digit
 
    lea dx, pause
    mov ah,10
    int 21h 
 
mov ax,4C00h        
int 21h             
main endp       
 
 
outputs proc 
mov dx,offset mpp
mov ah,09 
int 21h 
ret 
outputs endp
 
digit proc 
push bp                         ;сохраняем bp
mov bp,sp                     ;перемещаем sp в bp
mov bx,[bp+4]               ;число для вывода помещается в bx через стек в качестве параметра
or bx,bx                        ;устанавливает 1, если один из битов элементов уст. 1
jns m1                           ;передаём управление на m1, если SF=0
mov al,'-'                      ;записываем знак -
int 29h             ;29-ое прерывание
neg bx                      ;делаем bx негативным
 
m1: 
mov ax,bx       ;перемещаем bx в ax
xor cx,cx       ;устанавливаем бит результата 1, если бит ист. отличается от бита приём.
mov bx,10       ;записываем 10 в bx
 
m2: 
xor dx,dx       ;устанавливаем бит результата 1, если бит ист. отличается от бита приём.
div bx          ;делим bx на 8,16 или 32-х битный регистр
add dl,'0'      ;добавляем 0
push dx         ;сохраняем dx
inc cx          ;увеличиваем регистр на 1
test ax,ax      ;ах ==0 ?
jnz m2          ;если нет, то выполняем m2 заного
 
m3: 
pop ax      ;извлекаем значение ax из памяти
int 29h             ;29-ое прерывание
loop m3         ;цикл от m3 к loop (максимально 65535 повторений)
 
pop bp      ;извлекаем значение bp из памяти
retn 2          ;возврат из ближней процедуры
digit endp 
 
inputn PROC NEAR
 
;read line
LEA DX, INPUT
MOV AH, 10
INT 21H
 
;MOV DI, offset INPUT+2 ; DI - POINTER TO THIRD ELEMENT OF INPUT
LEA DI, INPUT+2
MOV AL, [DI]
CMP AL, '-'
;CMP BYTE PTR [DI], '-' ; 
JE NEGATIVE            ; IF [DI] == '-' GOTO NEGATIVE
CMP BYTE PTR [DI],'+'
JE POSITIVE
 
LABEL1: 
   XOR BX,BX    ; BX=0000
   MOV BX,10
   XOR AX,AX
   
LABEL2:
   XOR CX,CX
   CMP BYTE PTR [DI], 0DH    ; ODH - END STRING
   JZ LABEL5
   CMP BYTE PTR [DI], 30H    ; IF <30 - NOT A NUMBER
   JB BAD_NUMBER
   CMP BYTE PTR [DI], 39H    ; IF >39 - NOT A NUMBER
   JA BAD_NUMBER
   MOV CL, [DI] 
   SUB CL, 30H               ; CONVERT TO NUMBER 0..9
   MUL BX                    ; MUL BL AND AL, RESULT IN AX 
   JC BAD_NUMBER             ; JUMP IF CARRY FLAG (WE HAVE OVERFLOW)
   ADD AX,CX
   JC BAD_NUMBER
   INC DI
   JMP LABEL2
NEGATIVE:                  ; SET IS_NEGATIVE 1
   PUSH AX
   MOV AL, IS_NEGATIVE
   MOV AL, 1
   MOV IS_NEGATIVE, AL
   POP AX
   INC DI
   JMP LABEL1
POSITIVE:
   PUSH AX
   MOV AL, 0
   MOV IS_NEGATIVE, AL
   POP AX
   INC DI
   JMP LABEL1
BAD_NUMBER:              ;ERROR OR BAD NUMBER
   MOV AH, 9
   LEA DX, BAD_INPUT
   INT 21H 
   MOV AH, 1 ; GETCH() WAIT FOR USER (READING MESSAGE)
   INT 21H
   MOV AH, 4CH ; EXIT() IN C
   INT 21H
LABEL5:
   CMP AX, 999
   JA BAD_NUMBER
   MOV CL, IS_NEGATIVE
   CMP CL, 1
   JNZ L6
   NEG AX
L6:   RET
inputn endp
 
cseg ends
end main
Буду очень благодарен за помощь! Проблема срочная
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2016, 21:50
Ответы с готовыми решениями:

Вычисление выражения с=(a+b mod a*4+b div a) div 2-a div 160
Пожалуйста, посмотрите на код, уввжаемые! нужно вычислить такое выражение: с=(a+b mod a*4+b div a) div 2-a div 160 У меня неверно...

Div:hover не работает
Доброе утро. &lt;div class=&quot;leftblock480 block grayscale&quot;&gt; &lt;?$url='http://'.$_SERVER.'/'?&gt; &lt;div...

как работает div
страница разбита на 2 блока (div).в одном меню а во втором содержимое, как сделать чтобы при нажатии определенного пункта меню во втором...

2
 Аватар для Ol44
197 / 89 / 15
Регистрация: 10.07.2016
Сообщений: 146
09.11.2016, 22:05
Лучший ответ Сообщение было отмечено Bullet_VIP как решение

Решение

xor edx,edx до div
2
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 84
09.11.2016, 22:08  [ТС]
Ol44, Спасибо, всё заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.11.2016, 22:08
Помогаю со студенческими работами здесь

CSS!? Div в div'e, как не потерять позиции css внутреннего div'a при изменении размера браузера?
вот когда изменяю размер браузера, то внутренний div не хочет изменяться вместе с контейнером, а контейнер изменяется? .container{ ...

DIV height:100% не работает
Уже пролазил весь инет вместе с Google и нет никаких результатов. Оказывается что заполнить background на всю высоту DIV на 100% не...

Не понятно работает div контейнер
Есть div контейнер &quot;content&quot; - в него входят bgfon, blockl, blockr. Ниже этой конструкции должен располагаться контейнер &quot;footer&quot;...

Атрибуты div - Не работает float
Привет! Делаю небольшой сайт по урокам, сайт делается на html/css блоках, проблема с float - в уроке (видеоуроке, так что перепутать...

Не работает background у блока div
Добрый день уважаемые форумчане! Прошу помочь со следующей проблемой: не работает задний фон у блока. Вот код: &lt;div...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru