Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для LeDep
74 / 74 / 44
Регистрация: 12.02.2011
Сообщений: 380

Для чего нужны приведенные три строки кода в этой программе

01.12.2012, 01:08. Показов 1698. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для чего нужны именно эти 3 строчки в этой программе ?
Assembler
1
2
3
  mov ax, cs
       mov ds,ax
       mov ax,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
40
41
format MZ
       mov ax, cs
       mov ds,ax
       mov ax,3
       int 10h
 
       mov ah, 3fh
       mov bx,0
       mov cx,100
       mov dx, numb
       int 21h
 
       mov al,[numb]
       sub al,48
 
 
       mov cl,[numb+1]
       sub cl,48
 
       mul cl
       mov bl,10
       div bl
 
 
 
       push ax
       mov dl,al
       add dl,48
       mov ah,2h
       int 21h
 
       pop ax
 
       mov dl,ah
       add dl,48
       mov ah,2h
       int 21h
 
       mov AX, 4c00h
      int 21h
numb  db 100 dup (?),0
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2012, 01:08
Ответы с готовыми решениями:

Для чего нужны {} в программе?
Вопрос состоит в вот этом: Для чего нужны {} в программе? При вводе натурального числа программа определяет его делители, но среди них...

Для чего в этой программе асинхронность?
Здравствуйте ! Подскажите пожалуйста, для чего в этой программе асинхронность ? ( Программа рабочая ) С командами разобрался, а...

Для чего в этой программе нужен create и что он означает?
Я новичок, не понимаю что означает create и для чего он тут нужен? Программа самая простая. program childparent; {$APPTYPE CONSOLE} ...

5
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
01.12.2012, 15:51
mov ax, cs
mov ds,ax ; DS=CS, т.к. данные в сегменте кода
mov ax,3 ; установка видеорежима.
Более корректно, IMHO, будет так:
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
format MZ
    heap    0
    stack   100h
    entry   .code:start
segment .code   use16
start:  mov ax,.data
    mov ds,ax
;       mov ax, cs
;       mov ds,ax   
       mov ax,3
       int 10h
 
       mov ah, 3fh
       mov bx,0
       mov cx,100
       mov dx, numb
       int 21h
 
       mov al,[numb]
       sub al,48
 
 
       mov cl,[numb+1]
       sub cl,48
 
       mul cl
       mov bl,10
       div bl
 
 
 
       push ax
       mov dl,al
       add dl,48
       mov ah,2h
       int 21h
 
       pop ax
 
       mov dl,ah
       add dl,48
       mov ah,2h
       int 21h
 
       mov AX, 4c00h
      int 21h
 
segment .data use16 
numb  db 100 dup (?),0
1
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
01.12.2012, 15:51
В приведенном коде для данных (строка 41) не предусмотрен отдельный сегмент, т.е. эти данные располагаются в самом сегменте исполняемого кода. Поэтому эти две строки
Assembler
1
2
       mov ax, cs
       mov ds,ax
делают возможным обращение к данным по умолчанию, т.е. теперь в строках 13, 17, например, можно писать просто
Assembler
1
2
3
mov al,[numb]
......
mov cl,[numb+1]
что, фактически, соответствует
Assembler
1
2
3
mov al,ds:[numb]
......
mov cl,ds:[numb+1]
А иначе надо было написать
Assembler
1
2
3
mov al,cs:[numb]
......
mov cl,cs:[numb+1]
А команды
Assembler
1
2
       mov ax,3
       int 10h
устанавливают текстовый режим видеоадаптера.
Кстати, строки 7-11 бессмысленны. Ведь они должны выполнить чтение из какого-то дискового файла. Но вот какого? Уже не говоря о том, что строка 10 должна иметь вид
Assembler
1
mov dx, offset numb
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
01.12.2012, 16:03
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Ведь они должны выполнить чтение из какого-то дискового файла. Но вот какого?
Дык, bx=0, т.е. из stdin.

Добавлено через 3 минуты
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Уже не говоря о том, что строка 10 должна иметь вид mov dx, offset numb
Только не для FASM'a.
1
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
01.12.2012, 16:08
Ну да. Сработал стереотип чтения с консоли. Но mov dx,offset numb остается в силе.
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
01.12.2012, 16:22
Цитата Сообщение от Dmitrinik Посмотреть сообщение
Но mov dx,offset numb остается в силе.
Ни разу. У FASM'a нет понятия offset - mov dx, numb трактуется как адрес,
mov dx, [numb] - как значение по адресу
Миниатюры
Для чего нужны приведенные три строки кода в этой программе  
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2012, 16:22
Помогаю со студенческими работами здесь

Объяснить, для чего нужны указанные фрагменты кода
class foo { //variables public: protected: private: //functions public: foo();

Для чего в коде нужны 2 последних аргумента и фрагмент кода?
Есть код функции: public static function getCellsWeight($kpW, $ss=null, $alf=null) { $res =...

Что делают приведенные строки кода
Что значат следующие строки кода на ассемблер (проц. 8086)? mov ES:,DI mov CS:,SI mov ax, Интересует именно действие этих...

Для чего нужны скрывающиеся строки
При нажатии alt+F9 в вордовском шаблонном документе dot появляются строки { DOCVARIABLE DocNum \* MERGEFORMAT } { DOCVARIABLE ...

Нюансы синтаксиса: объяснить что происходит в заданных строках кода и для чего нужны указанные конструкции
Наткнулся на урок по C++ в интернете, где был пример с перебором "телефонной книги". Вот кусок кода, где объявляется класс: class...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru