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

Арифметические команды и команды переходов

20.01.2013, 20:19. Показов 3680. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу на языке ассемблера с полным описанием сегментов для вычисления значения y. Используйте, где требуется, 32х-разрядные регистры.

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2013, 20:19
Ответы с готовыми решениями:

команды безусловных и условных переходов.
(Решите плиз) Дан массив из 10 байт.Сформировать другой массив по адресу ES:0050h,в который нечетные элементы из первого массива...

Команды безусловного перехода. Типы переходов
Ввод и преобразование чисел в языке Ассемблера. Гуглил, гуглил, так и не нашел то, что нужно, либо просто не знал что это то, что...

Арифметические команды
Проверьте, пожалуйста, программу на assembler`е Вот задание: z=x/(12*y-6)+6 Разбиралась несколько часов с арифметическими командами,...

6
 Аватар для drm
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 37
21.01.2013, 18:25  [ТС]
сделал но не пойму как сделать в одной программе два перехода:
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
data segment
  a db ?
  x db ?
  y db 0
  y1 db 0
  y2 db 0
  per db 10,13,'$'
  mesa db 10,13,'input a: $'
  mesx db 10,13,'input x: $',10,13
data ends                 
stk segment stack        
 db 128 dup(?)           
stk ends                 
assume cs:code, ds:data, ss:stk    
code segment             
 start:    
       mov ax,data
       mov ds,ax   
       mov dx, offset mesa
       mov ah,9 ;приглашение на ввод а
       int 21h
       
        mov ah,1 ;считывание нажатого символа
        int 21h
        mov a,al
        
        mov dx,offset mesx
        mov ah,9 ;приглашение на ввод x
        int 21h
        
        mov ah,1 ;считывание нажатого символа
        int 21h
        mov x,al
        
        mov dx,offset per
        mov ah,9
        int 21h
        
        mov al,a
        cmp x,al
        jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
        Lower:
            mov al,a
            add al,al
            sub al,x
            mov y1,al
            jmp short m2
        
        Higher:
            mov al,a
            add al,x
            mov y1,al
            
        m2:
        mov al,10
        cmp x,al
        jge Lower;если x<=10, то перейти на метку Lower. Иначе на метку Higher.
        Lower:
        mov y2,x
        jmp short m3
        Higher:
        mov al,a
        mul x
        mov y2,al
        m3:
        add y1,y2
        mov y,y1
        mov  y,02h      ;вывод элемента Х из DL на экран
        int  21h
       
        mov  ah,01h      ;остановка программы в 
        int  21h         ;ожидании нажатия клавиши  
        mov  ax,4c00h    ;завершение работы программы      
        int  21h       
code ends               
end start
Добавлено через 1 час 26 минут

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
82
83
84
85
86
87
88
89
data segment
  a db ?
  x db ?
  y db 0
  y1 db 0
  y2 db 0
  per db 10,13,'$'
  mesa db 10,13,'input a: $'
  mesx db 10,13,'input x: $',10,13
data ends                 
stk segment stack        
 db 128 dup(?)           
stk ends                 
assume cs:code, ds:data, ss:stk    
code segment             
 start:    
       mov ax,data
       mov ds,ax   
       mov dx, offset mesa
       mov ah,9 ;приглашение на ввод а
       int 21h
       
        mov ah,1 ;считывание нажатого символа
        int 21h
        mov a,al
        
        mov dx,offset mesx
        mov ah,9 ;приглашение на ввод x
        int 21h
        
        mov ah,1 ;считывание нажатого символа
        int 21h
        mov x,al
        
        mov dx,offset per
        mov ah,9
        int 21h
        
        mov al,a
        cmp x,al
        jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
        jg Higher
        Lower:
            mov al,a
            add al,al
            sub al,x
            mov y1,al
            jmp short m2
        
        Higher:
            mov al,a
            add al,x
            mov y1,al
            
        m2:
        mov al,10
        cmp x,al
        jge Small1;если x<=10, то перейти на метку Small1. Иначе на метку Bigg1.
        jl Bigg
        Small1:
        mov al,x
        mov y2,al
        jmp short m3
        Bigg:
        mov al,a
        mul x
        mov y2,al
        m3:
        mov al,y1
        mov bl,y2
        add al,bl
        mov y,al
    ;вывод на экран
 aam 
    add ax,3030h 
    mov dl,ah 
    mov dh,al 
    mov ah,02 
    int 21h 
    mov dl,dh 
    int 21h
mov ah,0
int 16h
 
mov ah,4ch
int 21h
   
code ends               
end start
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
21.01.2013, 18:52
Assembler
1
2
3
4
        cmp x,al
        jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
        jg Higher
        Lower:
Так не делается.
Вот правильно:
Assembler
1
2
3
4
5
        cmp x,al
        jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
        cmp x,al ;<----------------------
        jg Higher
        Lower:
И дальше в коде надо исправить.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
22.01.2013, 04:29
AFP, так тоже не комильфо
Assembler
1
2
3
        cmp x,al
        jg Higher;если x>a, то перейти на метку Higher. Иначе (x<=a) на метку Lower.
Lower:...
0
650 / 337 / 37
Регистрация: 04.04.2012
Сообщений: 886
22.01.2013, 14:55
Mikl___, я не смотрел, что делает код. Увидел 2 условных перехода подряд, указал на это ТС.
0
 Аватар для drm
0 / 0 / 0
Регистрация: 19.01.2013
Сообщений: 37
22.01.2013, 15:18  [ТС]
Так как правильно?
Так?
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
        cmp x,al
        jle Lower ;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
        Lower:
            mov al,a
            add al,al
            sub al,x
            mov y1,al
            jmp short m2
        
        Higher:
            mov al,a
            add al,x
            mov y1,al
            
        m2:
        mov al,10
        cmp x,al
        jge Small1;если x<=10, то перейти на метку Small1. Иначе на метку Bigg1.
        Small1:
        mov al,x
        mov y2,al
        jmp short m3
        Bigg1:
        mov al,a
        mul x
        mov y2,al
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
23.01.2013, 03:44
drm, не правильно, должно быть
Assembler
1
2
3
4
5
6
        cmp x,al
        jg Higher;если x<=a, то перейти на метку Lower. Иначе на метку Higher.
Lower: ...
        cmp x,al
        jl Bigg1;если x<=10, то перейти на метку Small1. Иначе на метку Bigg1.
Small1: ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2013, 03:44
Помогаю со студенческими работами здесь

Вычислить выражение по формуле
Помогите написать программу с арифметическими командами на сопроцессоре. ( что бы были +,-,*,/) Если можно с коментарием. например...

Арифметические команды в ассемблере. Проверьте код
data segment r db 3 y db ? data ends stk segment stack ...

Арифметические команды асемблера (простенькая задача)
Здравствуйте, помогите пожалуйста, нужно составить и отладить программу на языке ассемблера для вычисления заданного арифметического...

Логические команды и команды сдвига (masm32)
объясните пожалуйста как Это делать. Запишите инструкцию AND для логического умножения данных, находящихся в сегменте данных за 4...

Логические команды и команды сдвига данных
Определить содержимое регистра AL при выполнении команд: 1) MAV AL,11111111b OR AL,11000011b 2) MOV AL,10100111b AND...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru