Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 16.05.2018
Сообщений: 1
1

Не могли бы вы пояснить те части кода, которые я не понимаю (отмечено в комментариях к коду)?

16.05.2018, 14:19. Показов 365. Ответов 1
Метки asm, tasm (Все метки)

Необходима помощь в разборе программного кода.
Сама программа принимает на вход пятизначное число и записывает его в регистр SI.
Писал код не сам (стараюсь этого не допускать), что и так ясно, но хочу разобрать его для примера, чтобы решить связанную с данной программой задачу. Ассемблер изучаю недавно.
Не могли бы вы пояснить те части кода, которые я не понимаю (написал в комментариях к коду)?

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
MASM
MODEL SMALL
.DATA 
BUF DB 6, 0, 0, 0, 0, 0, 0, 0 ;буфферная переменная, в которую записывается число
X DW 1 ;?
 
.STACK 256 
 
.CODE
MAIN PROC
MOV AX, @DATA ;инициализация сегмента данных (передаём смещение адреса, с которого начинают располагаться переменные)
MOV DS, AX
 
MOV AH,0AH ;обращение к функции ввода строки с одновременным отображением
MOV DX, OFFSET BUF ;введённая строка запишется в буфер
INT 21H ;вызов прерывания
 
MOV SI,0 ;не понимаю, зачем обнулять этот регистр
MOV CL, BUF[1] ;не понимаю, зачем передавать элемент строки в этот регистр
 
M1: ;как понимаю, в коде, относящемся к М1 производится преобразование кодов введённых символов в число (но подробно код не знаю, как пояснить, кроме вычитания 30h (код нуля))
MOV BX, CX
ADD BX, 1H
SUB BUF[BX], 30H
LOOP M1
; весь остальной код ниже в целом не очень понимаю
MOV CL, BUF[1]
MOV BX, CX
INC BX
 
M2:
MOV AX, 0
MOV AL, BUF[BX]
MUL X
ADD SI, AX
 
MOV AX, 10
MUL X
MOV X, AX
DEC BX
LOOP M2
 
;корректный выход из программы
MOV AX, 4C00H
INT 21H 
MAIN ENDP 
END MAIN
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2018, 14:19
Ответы с готовыми решениями:

Не понимаю некоторые части кода
Помогите к комментирование пожалуйста #include <iostream> #include <string> using namespace...

Не понимаю, что делает части кода
Всем привет. Есть пример кода с заданием. Имеется произвольный список, состоящий из числовых...

Не могли бы вы пояснить значение представленного типа данных.
В общем объявляется пользовательский тип данных: type TArr = array of char; Потом где-то...

Могли бы ответить на данный тест и пояснить ответ ?
Могли бы ответить на тест

__________________
1
Модератор
Эксперт по электронике
7521 / 3709 / 1456
Регистрация: 01.02.2015
Сообщений: 11,541
Записей в блоге: 2
16.05.2018, 20:36 2
строка 18 - и правда - незачем. Он нигде не используется. можно удалить
строка 19 - таков формат буфера после вызова int 21h ah=0Ah почитайте об этой функции
дальше - похоже на вычисление произведения всех цифр введённого числа
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.05.2018, 20:36

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Есть некоторые строчки кода, которые я не понимаю
Добрый день. У меня есть код программ но есть некоторые строчки кода которые я не понимаю. Помогите...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.