Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 3

Зачем каждый раз заносить в стек перед прерыванием конкретно эту переменную?

18.12.2011, 15:10. Показов 1405. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести с клавиатуры строку. Преобразовать все буквы в числа. Построить криптограмму (вместо букв вывести на экран соответствующие им числа).

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
data    segment
input   db 80,?,80 dup(?)
txt1    db 13,10,'Input string:',13,10,'$'
txt2    db 13,10,'Crypted string:',13,10,'$'
 
div100  db 100
div10   db 10
data    ends
 
code    segment
    assume cs:code, ds:data
 
start:  mov ax,data
    mov ds,ax
 
    mov ah,9
    lea dx,txt1
    int 21h
 
    mov ah,0ah
    lea dx,input
    int 21h
 
 
    mov cl, input+1
    cmp cl,0
    je m0
    mov ch,0
 
 
    mov ah,9
    lea dx,txt2
    int 21h
 
 
    lea bx,input+2
 
m1: mov al,[bx]
    mov ah,0
 
    div div100
    push ax
 
    mov dl,al
    add dl,'0'
    mov ah,2
    int 21h
 
    pop ax
    mov al,ah
    mov ah,0
    div div10
    push ax
 
    mov dl,al
    add dl,'0'
    mov ah,2
    int 21h
 
    pop ax
    mov dl,ah
    add dl,'0'
    mov ah,2
    int 21h
 
 
    mov ah,2
    mov dl,' '
    int 21h
 
 
    inc bx
    loop m1
    ;-----------
 
m0: mov ax,4c00h
    int 21h
 
code    ends
 
    end start
Здесь мы каждый раз перед прерыванием заносим ax в стек,потом достаем его,но почему именно ax? Работу заказывала, до конца сама в ней не могу разобраться((( И зачем нужно div div100,div div10? Помогите пожалуйста разобраться(((( Третье занятие уже защитить ее не могу..(((
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2011, 15:10
Ответы с готовыми решениями:

Зачем DWORD PTR заносить в регистр?
Подскажите, пожалуйста, в 6й строке нежелательно напрямую добавлять ebx к DWORD PTR . DWORD PTR надо заносить в регистр и уже к регистру...

Что оптимальнее - вычислять длину строки каждый раз или завести переменную?
for(i=0;i<=strlen(str);i++) Лучше каждый раз вычислять длину строки или какой-нибудь переменной присвоить длину строки и в цикле...

Передать имя файла в переменную, если имя каждый раз уникальное и содержит маску
Добрый день. В виду отсутствия информации в поиске, прошу помочь с вопросом по batch. Как передать имя файла в переменную, если имя...

1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
18.12.2011, 17:50
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
;masm
;model  small
stack   256
data    segment
input   db  80,?,80 dup(?)
txt1    db  13,10,'Enter string:$'
txt2    db  13,10,'Crypted string:$'
data    ends
 
code    segment
assume cs:code, ds:data
 
start:  mov     ax,data
        mov     ds,ax
 
        mov     ah,9
        lea     dx,txt1
        int     21h
 
        mov     ah,0ah
        lea     dx,input
        int     21h
    mov si, dx
    lodsw
    shr ax, 8
    test    al,al
    jz  m0
    mov cx, ax
; cx - str length, DS:SI -> string buf
        mov     ah,9
        lea     dx,txt2
        int     21h
_loop:  lodsb
        call    out_dec
        loop    _loop
 
 
m0:     mov     ax,4c00h
    int     21h
 
out_dec:push    cx
        mov     bx, 10
        xor cx, cx
        xor ah, ah
@@out_dec:
        xor     dx, dx
        div     bx
        or  dx, 30h            ;остаток от деления
        push    dx
        inc     cx                ;считаем кол-во цифр
        or  ax, ax             ;пока не 0 - делим
        jnz     @@out_dec
@@3:    pop ax
        int 29h
        loop    @@3
        mov al,' '
        int     29h
        pop cx
        ret
code    ends
 
    end     start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2011, 17:50
Помогаю со студенческими работами здесь

Если найдены скобки - (.) то заносить значение внутри них в переменную
Всем пламенный привет, форумчанам и спасителям жизни начинающих кодеров. Задался вопросом: как перевести на язык Delphi такую задачу: ...

Как задасть значение Textbox в переменную, а затем эту переменную вывести в другой форме
Приветствую Есть форма с полем, где есть значение, как значение этого поле перенести в переменную, а затем вывести ее в другом поле,...

Считывать файл до конца и заносить его содержимое в переменную не зависимо от типа
Здравствуйте, помогите пожалуйста, мне необходимо заставить свою программу считывать файлы всех типов. Вот мои попытки которые читают до...

Заполнить стек 20 случайными числами с интервала [0; -10]. Вывести стек на экран. Изъять из стека каждый четвертый элеме
Заполнить стек 20 случайными числами с интервала . Вывести стек на экран. Изъять из стека каждый четвертый элемент, найти сумму изъятых...

Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из них на единицу и снов
Сформировать стек из 6 цифр. Вывести стек на экран. Удалить элементы из стека, увеличить каждый из них на единицу и снова поместить в стек...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru