Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Velll
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 2
#1

Не могу понять для чего используется регистр es в процедуре - Assembler

21.12.2010, 14:00. Просмотров 1236. Ответов 3
Метки нет (Все метки)

Пользователь вводит два числа А и В в шестнадцатеричном ви-де. Программа должна:
1. Посчитать С=А/2+В.
2. Выполнить арифметический сдвиг С на 3 бит влево.
3. Вывести на экран число С и все промежуточные результаты в двоичном виде.
4. Написать макрос для вывода результата
5. Написать процедуру для ввода чисел
6. Написать процедуру для расчета
7. Передача параметров через стек
8. Используйте стандартные директивы сегментации и формат сом-программы.

Сама программа:
strout macro str
mov dx, offset str
mov ah, 9
int 21h
endm

outn macro n
local o1
mov cx, 16
mov ah, 2
xor dx, dx
o1:
rol n, 1
adc dl, 30h
int 21h
xor dl, dl
loop o1
endm

cseg segment
assume cs:cseg, ds:cseg, ss:cseg
org 100h

mes1 db 'a = $'
mes2 db 'b = $'
mes3 db 'a / 2 = $'
mes31 db 'a / 2 + b = $'
mes4 db 'c << 3 = $'
mes5 db 10, 13, '$'
a db (?)
b db (?)
c db (?)

inputn proc
xor cl, cl
inpt:
mov ah, 1
int 21h
cmp al, 13
je exit
sub al, 30h
cmp al, 9
jle s
sub al, 7
cmp al, 15
jle s
sub al, 20h
s:
shl cl, 4
add cl, al
jmp inpt
exit:
ret
inputn endp

calc proc
pop es

pop ax

shr ax, 1
mov bx, ax
strout mes3
outn bx
strout mes5

pop ax
add ax, bx
mov bx, ax

strout mes31
outn bx
strout mes5

shl bx, 3
strout mes4
outn bx

push es
ret
calc endp

main proc
mov ax, cseg
mov ds, ax

strout mes1
call inputn
mov a, cl
strout mes5

strout mes2
call inputn
mov b, cl
strout mes5

xor ah, ah
mov al, b
push ax

mov al, a
push ax

call calc

mov ah, 4ch
int 21h
main endp

cseg ends
end main
Объясните, пожалуйста, что поместится в es в процедуре calc и для чего это вообще нужно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2010, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу понять для чего используется регистр es в процедуре (Assembler):

Студент. Хочу понять что такое ассемблер, как на нем писать, как его понять и с чего начать - Программирование
Ребят, хочу понять ассемблер. Проблема в том, что я студент, пары микропроцессоров уже прошли, но я так и не понял как писать на нем. Хочу...

В процедуре в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран - Assembler
Имеется процедура, в ней в регистр AX помещается результат выражения, как его вернуть с процедуры, чтобы вывести на экран ? :) TITLE ...

Не могу понять понять смысл резидентной программы - Assembler
Суть препод кинул резидент, сказал чтобы сами разбирались. Увидел что ее выкладывали уже, но в ветке этой темы, там тоже не объяснили, как...

Не могу понять для чего этот тестер - Измерительная техника
Нашел на складе тестер,не могу понять для чего он.

Не могу понять для чего третья переменная в параметрах функции - C++
int binpow (int a, int n) вот это понимаю, а вот этот не могу понять, что означает переменная b? unsigned int binpow(unsigned int a,...

Не могу понять для чего нужен этот участок кода - Delphi
Не могу понять что он делает !!! Так то понятно что метод FileExists поверяет директорию на наличие файла memo.txt, но если его убрать то...

3
murderer
3211 / 1434 / 77
Регистрация: 06.10.2010
Сообщений: 3,177
21.12.2010, 15:31 #2
в процедуре calc в es извлекается адрес возврата, затем извлекаются параметры процедуры затем адрес возврата помещается обратно в стек для инструкции ret.
0
Velll
0 / 0 / 0
Регистрация: 18.12.2010
Сообщений: 2
21.12.2010, 19:27 #3
А откуда в стеке адрес возврата, ведь до этого мы ничего кроме регистра ax не помещали?
0
murderer
3211 / 1434 / 77
Регистрация: 06.10.2010
Сообщений: 3,177
21.12.2010, 20:23 #4
call помещает в стек адрес следующей инструкции и делает jmp в процедуру
ret извлекает из стека адрес возврата и делает jmp на него
1
21.12.2010, 20:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.12.2010, 20:23
Привет! Вот еще темы с ответами:

Не могу понять, что за язык используется - HTML, CSS
Попал сайт в руки, не могу понять что за язык скриптов в нём используется? Это стоит в начале и конце боди: ...

Не могу понять, какой JS используется в элементе - jQuery
Всем привет. Мне очень интересно, как же работает элемент со сменой видеозаписей на данной странице (тык, второй блок, где стоят...

Не могу понять используется smarty на сайте или нет - PHP
Добрый день! Разбираю сейчас один сайт и там присутствуют файлы .tpl. В php-файлах, соответствующих каждому шаблону tpl есть функции,...

Не могу понять как создать Регистр накопления согласно моей конфигурации - 1С
Здравствуйте Друзья:) Обращаюсь к Вам с Очередной просьбой по поводу своей собственной Конфигурации &quot;Статистика и инвентаризация...


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

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

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