10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143

Вычислить значение выражения

10.02.2013, 20:09. Показов 1755. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Помогите написать на ассемблере такое:

Название: Снимок.JPG
Просмотров: 162

Размер: 9.5 Кб

Вот начал делать, но не уверен что правильно, допишите кому не сложно:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
code segment
assume cs:code, ds:code
org 100h
start:
    mov ax,0
    mov ax,4
    mov cx,8
    mov bx,3
    mov si,1
 
    l: mul si 
    add bx,si
    div bx 
 
    inc si
    loop l
 
mov ax,4ch
int 21h
code ends
end start
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2013, 20:09
Ответы с готовыми решениями:

Вычислить значение выражения a*5-(b+c+d)/2
Всем привет. Помогите, пожалуйста, написать программу на Assembler, вычисляющую значение выражения. Вот то самое выражение:...

Вычислить значение выражения
Рассчитать значение формулы F=A+B-C/2+D Операнд А : значение 13 адрес 91 Операнд В : значение 159 адрес 46635 Операнд С : значение 39...

Вычислить значение выражения
Вычислить уравнение (a ^ 3) / ((b | 9) * (!c + 1)) – (d & 2)

18
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
10.02.2013, 20:55
.386

.model flat, stdcall
option casemap :none

include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib

.data
mestitle db "Bomz",0
form db "EAX: %010hu", 0

.data?
buffer db 512 dup(?)

.code
start:
xor esi, esi
mov ecx, 10
@@:
xor edx, edx
mov eax, ecx
shl eax,2
mov ebx, ecx
add ebx, 3
div ebx
add esi, eax
loop @B
invoke wsprintf,ADDR buffer,ADDR form,esi
invoke MessageBox,0,ADDR buffer,ADDR mestitle,MB_ICONASTERISK
invoke ExitProcess,0
end start
так не по честному получится, делить надо с остатком через fpu
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
10.02.2013, 21:03
Как-то так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.model  tiny
.386
.code
    org 100h
start:
    mov cx, 9
    mov di, 3
    xor si, si
@@:     mov ax, cx
    inc ax
    mov bx, ax
    sal ax, 2   ; ax = 4n
    add bx, di  ; bx = 3+n
    xor dx, dx
    idiv    bx  
    add si, ax
    loop    @B
; si - сумма
    mov ax,4ch
    int 21h
    end start
1
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
10.02.2013, 22:14
ага я нуликом я лоханулся, ну все равно последний элемент 0 получится
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
10.02.2013, 22:39  [ТС]
Цитата Сообщение от bomz Посмотреть сообщение
ага я нуликом я лоханулся, ну все равно последний элемент 0 получится
сето ниче не понял что написано в коде =D

Цитата Сообщение от Charles Kludge Посмотреть сообщение
Как-то так:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.model  tiny
.386
.code
    org 100h
start:
    mov cx, 9
    mov di, 3
    xor si, si
@@:     mov ax, cx
    inc ax
    mov bx, ax
    sal ax, 2   ; ax = 4n
    add bx, di  ; bx = 3+n
    xor dx, dx
    idiv    bx  
    add si, ax
    loop    @B
; si - сумма
    mov ax,4ch
    int 21h
    end start
точно рабочий? =) мне не понятно что "@" значит? ни разу в ассемблере еще не встречал!
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
10.02.2013, 22:50
Цитата Сообщение от Напосарам Посмотреть сообщение
точно рабочий? =)
А отладчик на что?
Цитата Сообщение от Напосарам Посмотреть сообщение
что "@" значит?
@@ - cовсем локальная метка. Может использоваться моногожды. jmp @B - переход к ближайшей такой метке назад по коду, jmp @F -//- вперёд. Очень удобно.
Глюпий тасм их не понмает.
0
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
10.02.2013, 23:00
в тасме есть такие метки и даже такие @@1 @@2 и так далее. наверно только в последних версиях типа 5
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
10.02.2013, 23:10
bomz, он не понимает jmp @F и jmp @B.
0
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
10.02.2013, 23:13
может быть не обратил внимание. сегодня возился с этим тасмом пытался из него что нибудь полезное выковырять.
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
10.02.2013, 23:25
bomz, ну и как? что наковырял?
1
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
11.02.2013, 00:00
да ничего. оно сдохло. подавало надежды dll2lib да эти либы на масме не фурыкают
0
 Аватар для Troll_Face
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
11.02.2013, 00:12
Цитата Сообщение от bomz Посмотреть сообщение
dll2lib
это что за вещь? не нашел у себя такую...
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
11.02.2013, 02:30
Цитата Сообщение от Fatal Error Посмотреть сообщение
что наковырял
Дык, bomz вряд ли знает, что трупоасм - это голимый speedware, помнишь?
Кстати, ковыряю MuliEdit(Бугланд,Ъ) - ржунимагу...
Оказалось, что вместо классики sub esp, <frame_size> значительно картавее генерить add esp, -<frame_size>
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16355 / 7671 / 1078
Регистрация: 11.11.2010
Сообщений: 13,736
11.02.2013, 07:05
Цитата Сообщение от Charles Kludge Посмотреть сообщение
bomz, он не понимает jmp @F и jmp @B.
понимает, наверное, вы не умеете его (tasm) правильно готовить
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
; tasm dos com #
masm51
quirks
.model tiny
.286
.code
org 100h
begin:  mov cx,5
@@: add ax,2
    loop @b
    jmp @f
    nop
@@: ret
end begin
1
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
11.02.2013, 09:57
вообще я первый раз про эти @@ узнал от георга поташа (юсб драйвер) на тасме. потом только узнал что на масме это тоже есть.
сборку тасма 5-го скачал давно на wasm.ru выкладывал вот в этой теме
Где скачать 16 битный TASM
внутри эта утилита доложена. во вложении к посту оно же. может кто разбереться что с этими библиотеками делать. других инструментов нормальных нет. масмовская работает только если фреймворков наставить. еще в инете есть две тузлы одна требует студию, и ниче больше понимать не хочет
http://www.yankeedownload.com/... kbkln.html
вторая как бы платная(?), я ее ставил вчера но библиотекой msvcrt не смог воспользоваться.
http://www.binary-soft.com/dll2lib/dll2lib.htm
Вложения
Тип файла: zip LIBGEN.zip (75.2 Кб, 2 просмотров)
0
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
11.02.2013, 10:03
кстати вчера я походу еще оригинальный тасм надыбал 5-ый и 4-ый. только в пятом фиг пойми как патчами пользоваться. меня в принципе 4.0 полностью устраивает.
вчера еще поставил DDK_XP приноровился батником Сишный код скомпилировать. но там старый Си , наковырял файлов из студии 2010, но собрать Си не смог - не ищет либы, куда пути ей пихать фиг пойми. никто не знает как Си сделать из студии без всех этих наворотов в 2 гига?
Вложения
Тип файла: rar tasm4.1.rar (3.16 Мб, 3 просмотров)
Тип файла: zip tasm5.zip (5.23 Мб, 2 просмотров)
Тип файла: rar tasm.4.1.rar (162.8 Кб, 2 просмотров)
0
10 / 10 / 1
Регистрация: 04.05.2011
Сообщений: 143
11.02.2013, 21:14  [ТС]
Что то вы от темы отошли =D
А если вот так? Вроде работает, тока я не понимаю в отладчике ниче, можете проверить?

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
code segment
assume cs:code, ds:code
org 100h
start:
 
    mov ax,0 
    mov ax,4
    mov bx,3 
    mov cx,10
    mov dx,0
    mov si,0 
 
    l: inc si
    mul si
    add bx,si
    idiv bx
    add dx,ax
    
    dec cx
    cmp cx,0
    jne l
    
 
 
 
mov ax,4ch
int 21h
code ends
end start
0
 Аватар для bomz
64 / 64 / 0
Регистрация: 06.10.2011
Сообщений: 299
11.02.2013, 22:27
сам проверь. http://ziplib.com/emu8086/

разобрался с е..библиотеками. к сожалению полноценную библиотеку можно сделать только из библиотеки.

Добавлено через 1 минуту
неправильно у тебю нифига
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16355 / 7671 / 1078
Регистрация: 11.11.2010
Сообщений: 13,736
12.02.2013, 05:47
мой вариант
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
; tasm dos com #
masm51
quirks
.model tiny
.286
.code
org 100h
begin:  mov cx,10
    mov dx,0
@@: mov ax,cx
    shl ax,2
    mov bl,cl
    add bl,3
    div bl
    add dl,al
    adc dh,0
    loop @b
    ret; в DX сумма
end begin
Добавлено через 34 минуты
Цитата Сообщение от bomz Посмотреть сообщение
так не по честному получится, делить надо с остатком через fpu
честное решение с использованием FPU
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.code
begin:  finit
    mov ecx,13; <-- чтобы лишний раз не складывать
@@: lea eax,[ecx*4-12]; умножаем на 4 с учетом 3*4
        push eax; работа с FPU только через память 
        fild dword ptr [esp]
    push ecx
    fidiv dword ptr [esp]
    fadd summ; сложили с учетом предыдущего результата
    fstp summ
    pop eax; вернули указатель стека на место
    pop eax
    dec ecx
    cmp ecx,4
    jae @b
    ret; выход из программы
.data
summ dd 0.0; здесь будет результат
end begin
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2013, 05:47
Помогаю со студенческими работами здесь

Вычислить значение выражения
х=((((a+b))*d)/((a^2)-c))+25

Вычислить значение выражения
Здравствуйте. Помогите пожалуйста исправить ошибку. Задача стаяла такая: 1) есть формула ;y/96+x*16 подставить в место x и y числа и выдать...

Вычислить значение выражения
asm // x+y fld x fld y fadd fstp sum // x-y fld x fld y fsub

Вычислить значение выражения
Помогите решыть пожалуйста (8*b+1-c)/(a/2+b*c)

Вычислить значение выражения
Помогите пожалуйста решить на ассемблере, я знаю что она легкая до предела, но мне очень нужно и я в этом ни бум-бум:cry: Вот условие: ...


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

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

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru