Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465

Не выводит содержимое

20.02.2013, 23:18. Показов 888. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Подскажите пожалуйста, из-за чего не выводится одержимое регистра AX? В чем косяк? Помогите пожалуйста исправить! Спасибо! Код, разумеется, прилагается
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
TITLE L1
data segment
    a DB 100
    b DB 66
    c DB 97
    d DB -30 
    z DB 0             
data ends
 
code segment
    assume cs:code,ds:data
begin:
    mov ax, data
    mov ds, ax
    mov ax,0
    ;; --- Выполнение ---
    mov al,a ;; ax: 0x0064  
    mov ah, 02h
    int 21h                   
    mov z,al
    add al,b ;; ax: 0x00A6  
    mov ah, 02h
    int 21h 
    sub al,d ;; ax: 0x00C4  
    mov ah, 02h
    int 21h 
    mul c    ;; ax: 0x4A44  
mov ax, 4c00h
int 21h
code ends
END begin
Добавлено через 1 час 38 минут
Ну подскажите в чем ошибка...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2013, 23:18
Ответы с готовыми решениями:

Разработать программу которая выводит на экран, которая выводит содержимое текущего каталога, упорядоченное по времени
Помогите пожалуйста!! В уинвере не изучали язык С++ а заставляют на нем написать программку (( В общем то вот такую: Разработать...

Напишите программу, которая выводит на экран содержимое файла и выводит сумму чисел файла
Напишите программу, которая выводит на экран содержимое файла D:\numbers.txt. и выводит сумму чисел файла. Вынужден снова просить...

For не выводит содержимое
начал учить php и не могу понять почему for не выводит содержимое $mas = "Привет"; $mas = "Hello"; $mas =...

13
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
20.02.2013, 23:51
Цитата Сообщение от kristi1 Посмотреть сообщение
Ну подскажите в чем ошибка...
во всем. что вообще надо сделать?
0
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
20.02.2013, 23:52  [ТС]
Выводить значение при каждом арифметическом действии - там все в регистре AX делается
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
20.02.2013, 23:57
Цитата Сообщение от kristi1 Посмотреть сообщение
mov ah, 02h
* * int 21h
замените эти строки на вызов этой процедуры. дополнительные действия не требуются
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
OutInt proc
    push ax
    push dx
    push bx
    push cx
    push ds
    push di
    push cs
    pop ds
    test ax, ax
    jns oi1
    mov di, 1
    neg ax
oi1:
    xor cx, cx
    mov bx, 10
oi2:
    xor dx, dx
    div bx
    add dx, '0'
    push dx
    inc cx
    test ax, ax
    jne oi2
    
    mov ah, 2
    cmp di, 1
    jne oi3
    mov dl, '-'
    int 21h
oi3:
    pop dx
    int 21h
    loop oi3
    pop di
    pop ds
    pop cx
    pop bx
    pop dx
    pop ax
    ret
OutInt endp
1
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
21.02.2013, 10:02  [ТС]
Показывает, что ошибки есть

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
; (A+B-D)*C
;    A   B    C    D    RES  RES(HEX)
;  100  66   97  -30  19012  0x4A44
;  Result in: AX
TITLE LAB1
data segment
    a DB 100
    b DB 66
    c DB 97
    d DB -30         
data ends
 
code segment
    assume cs:code,ds:data
begin:
    mov ax, data
    mov ds, ax
    mov ax,0
    ;; --- Выполнение ---
    mov al,a ;; ax: 0x0064  
    call OutInt         
    call OutInt
    add al,b ;; ax: 0x00A6  Суммирование    
    call OutInt
    sub al,d ;; ax: 0x00C4  Вычитание  
    call OutInt
    mul c    ;; ax: 0x4A44  Умножение  
    call OutInt
    mov ax, 4c00h
int 21h
code ends
END begin
 
OutInt proc
    push ax
    push dx
    push bx
    push cx
    push ds
    push di
    push cs
    pop ds
    test ax, ax
    jns oi1
    mov di, 1
    neg ax
oi1:
    xor cx, cx
    mov bx, 10
oi2:
    xor dx, dx
    div bx
    add dx, '0'
    push dx
    inc cx
    test ax, ax
    jne oi2
    
    mov ah, 2
    cmp di, 1
    jne oi3
    mov dl, '-'
    int 21h
oi3:
    pop dx
    int 21h
    loop oi3
    pop di
    pop ds
    pop cx
    pop bx
    pop dx
    pop ax
    ret
OutInt endp
Добавлено через 8 минут
В чем проблема тут?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.02.2013, 13:49
Домой после обеда приду поправлю.

Добавлено через 3 часа 45 минут
вот
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
; (A+B-D)*C
;    A   B    C    D    RES  RES(HEX)
;  100  66   97  -30  19012  0x4A44
;  Result in: AX
TITLE LAB1
 
data segment
    a DB 100
    b DB 66
    c DB 97
    d DB -30         
data ends
 
stk segment
    db 100h dup (?)
stk ends
 
code segment
    assume cs:code,ds:data, ss:stk
begin:
    mov ax, data
    mov ds, ax
    mov ax, stk
    mov ss, ax
    mov sp, 100h
 
    mov ax,0
    ;; --- Выполнение ---
    mov al,a ;; ax: 0x0064  
    call OutInt         
    add al,b ;; ax: 0x00A6  Суммирование    
    call OutInt
    sub al,d ;; ax: 0x00C4  Вычитание  
    call OutInt
    imul c    ;; ax: 0xE944  Умножение  
    call OutInt
   
    xor ax, ax
    int 16h
    mov ax, 4c00h
    int 21h
 
 
OutInt proc
    push ax
    push dx
    push bx
    push cx
    push ds
    push di
    push cs
    pop ds
    test ax, ax
    jns oi1
    mov di, 1
    neg ax
oi1:
    xor cx, cx
    mov bx, 10
oi2:
    xor dx, dx
    div bx
    add dx, '0'
    push dx
    inc cx
    test ax, ax
    jne oi2
    
    mov ah, 2
    cmp di, 1
    jne oi3
    mov dl, '-'
    int 21h
oi3:
    pop dx
    int 21h
    loop oi3
 
    mov dl, 13
    int 21h
    mov dl, 10
    int 21h
    pop di
    pop ds
    pop cx
    pop bx
    pop dx
    pop ax
    ret
OutInt endp
 
code ends
END begin
1
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
21.02.2013, 22:16  [ТС]
Дык а в последнем действии ответ не совсем верен получается... Должно получаться 19012, а выходит другое число... Это у меня в умножении проблемы или где искать проблему?

Добавлено через 56 минут
Ошибку устранила, спасибо большое))
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.02.2013, 22:54
ну давайте рассуждать: когда я смотрел на ваши переменные я увидел отрицательное число -30, а в ответе я получил "должное" 19012... стал искать проблему и увидел что умножение везде беззнаковое и исправил его на знаковое. и в 35 строке поправил шестнадцатеричный ответ. а Вы уж сами разбирайтесь, что у Вас там - mul\imul. но по мне там правильно должно быть imul
0
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
21.02.2013, 22:55  [ТС]
Да, я уже это поняла, еще раз огромное спасибо! А такой вопрос - если мне, например, нужно между выводом значений вывести строку, как лучше делать?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.02.2013, 23:03
для вывода строки делайте так:
Assembler
1
2
3
4
5
6
7
push ax
push dx
mov ah, 9
mov dx, offset message  ;тут собственно адрес сообщения
int 21h
pop dx
pop ax
1
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
21.02.2013, 23:04  [ТС]
Спасибо)) То есть получается это в стек помещается, верно? и можно просто вставлять в код программы непосредственно?
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.02.2013, 23:23
dx сохранять в Вашем случае необязательно
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
TITLE LAB1
 
data segment
    a DB 100
    b DB 66
    c DB 97
    d DB -30      
    message db 'String.....................', 13, 10, '$'
data ends
 
stk segment
    db 100h dup (?)
stk ends
 
code segment
    assume cs:code,ds:data, ss:stk
begin:
    mov ax, data
    mov ds, ax
    mov ax, stk
    mov ss, ax
    mov sp, 100h
 
    mov ax,0
    ;; --- Выполнение ---
    mov al,a ;; ax: 0x0064  
    call OutInt  
    push ax
    mov ah, 9
    mov dx, offset message
    int 21h
    pop ax
    add al,b ;; ax: 0x00A6  Суммирование    
    call OutInt
    push ax
    mov ah, 9
    mov dx, offset message
    int 21h
    pop ax
    sub al,d ;; ax: 0x00C4  Вычитание  
    call OutInt
    push ax
    mov ah, 9
    mov dx, offset message
    int 21h
    pop ax
    imul c    ;; ax: 0xE944  Умножение  
    call OutInt
   push ax
   mov ah, 9
    mov dx, offset message
    int 21h
    pop ax
   
    xor ax, ax
    int 16h
    mov ax, 4c00h
    int 21h
 
 
OutInt proc
    push ax
    push dx
    push bx
    push cx
    push ds
    push di
    push cs
    pop ds
    test ax, ax
    jns oi1
    mov di, 1
    neg ax
oi1:
    xor cx, cx
    mov bx, 10
oi2:
    xor dx, dx
    div bx
    add dx, '0'
    push dx
    inc cx
    test ax, ax
    jne oi2
    
    mov ah, 2
    cmp di, 1
    jne oi3
    mov dl, '-'
    int 21h
oi3:
    pop dx
    int 21h
    loop oi3
 
    mov dl, 13
    int 21h
    mov dl, 10
    int 21h
    pop di
    pop ds
    pop cx
    pop bx
    pop dx
    pop ax
    ret
OutInt endp
 
code ends
END begin
1
11 / 11 / 2
Регистрация: 07.03.2010
Сообщений: 465
21.02.2013, 23:24  [ТС]
Аааа, спасибо) не, мне просто интересно стало как оно делается, спасибо вам еще раз) Спасибо)
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
21.02.2013, 23:25
да незачто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2013, 23:25
Помогаю со студенческими работами здесь

Не выводит содержимое файла на консоль
class Program { static void Main(string args) { string line; ArrayList myAL =...

WebBrowser не выводит содержимое файлов
Есть на форме WebBrowser, в него должны выводиться файлы из папки data и там ещё есть подпапки, я всё прописал но когда я потом из treeView...

Цикл не выводит содержимое модели
Есть модель Category в которой лежат 4 категории, но когда я пытаюсь их вывести через цикл, то ничего не происходит, ошибок на странице...

Программа, которая выводит содержимое файла
Помогите написать программу, которая на входе получает путь до файла (ввод с клавиатуры) И выводит содержимое указанного файла на экран...

Программа тест, не выводит содержимое файла
Имеется программа-тест, после нажатия кнопки "загрузить файл"(txt в котором хранятся вопросы и ответы) кнопка "следующий вопрос"...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru