Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 21.09.2012
Сообщений: 74

Вывод числа на экран

05.11.2013, 19:12. Показов 3588. Ответов 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
masm
.model small
.data
    db  "Hello"
a1  db  2   ;Переменная a
c1  db  2   ;Переменная c
d1  db  2   ;Переменная d
x1  dw  ?
Denominator dw  ?   ;Знаменатель
Numerator   dw  ?   ;Числитель
    .code
start:
    mov ax,@data
    mov ds,ax
 
;знаменатель - Denominator ------------------------------------------------
    mov al,a1
    Imul    al  ; <ax>=a*a
    dec ax  ; <ax>=a*a-1
    ; подготовка к расширению d (BYTE===>WORD)
    push    ax  ; Запоминание <ax>=a*a-1 в стеке
    mov al,d1
    CBW     ; al ===> AX
    mov SI,ax   ; <SI>=<ax>=d - нужно для ЧИСЛИТЕЛЯ!!!
    pop bx  ;Восстановление содержимого стека ===> <bx>=a*a-1
    add bx,ax   ; <bx>=a*a-1+d
    mov Denominator,bx
;числитель - Numerator ----------------------------------------------------
    mov ax, 25
    IDIV    c1  ; <aL>=25/c
    CBW     ; al ===> AX
    sub ax,SI   ; <ax>=25/c-d
    add ax,2    ; <ax>=25/c-d+2
    CWD     ; aX ===> DX:AX
    mov WORD PTR Numerator, AX      ; мл. часть числителя 
    mov WORD PTR Numerator+2, DX    ; ст. часть числителя
;РЕЗУЛЬТАТ
    IDIV    bx  ; <ax>=(25/c-d+2)/(a*a-1+d)
    mov x1,ax
 
;ВЫХОДИМ
    mov ah,4Ch
    mov al,00h
    int 21h
 
end start
Пример
вывод числа в 16-ричной системе счисления на экран. Размерность числа – 1 байт (8 бит).
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
masm
.model small
.stack  256
 
.data
a   db  2Ch ;Исходное число
letters db  '0123456789ABCDEF$' ;Числа в 16-ричной системе
 
;Сообщения
mes db  "Число в 16-ричной системе - $"
mes2    db  0Dh,0Ah,'$'
 
    .code
start:
;ИНИЦИАЛИЗАЦИЯ ПРОГРАММЫ
    mov ax,@data
    mov ds,ax
 
;ВЫВОД НАЧАЛЬНОГО СООБЩЕНИЯ
    mov ah,09h
    mov dx,offset mes
    int 21h
 
;ВЫВОД ЧИСЛА В 16-РИЧНОЙ СИСТЕМЕ
    xor ax,ax
    mov al,a
    push    ax
    shr al,4    ; выделить старшие четыре бита
    xor bx,bx
    mov bl,al
    mov al,letters[bx]
    int 29h ; вывести на экран
 
    pop ax
    and al,0Fh  ; выделить младшие четыре бита
    xor bx,bx
    mov bl,al
    mov al,letters[bx]
    int 29h ; вывести на экран
 
;ВЫВОД ЗНАКА "КОНЕЦ СТРОКИ"
    mov ah,09h
    mov dx,offset mes2
    int 21h
 
;ВЫХОД
    mov ah,4Ch
    mov al,00h
    int 21h
 
end start
вообще не понимаю как это делать...помогите ребят
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2013, 19:12
Ответы с готовыми решениями:

Вывод числа на экран
Подредактируйте прогу...я кажись все правильно сделал но при выводе ответа на экран...выводится что-то не то=((( задача состоит в том...

Вывод числа из (DX:AX) на экран
Дана функция Y=(3x^3-120)^2 +9x, область допустимых значений строго от 0 до 7, при вводе чисел от 0 до 4, ответ выводит с помощью одного...

Вывод числа на экран
Здравствуйте, у меня есть задача сложить два числа и вывести результат на консоль. TASM. мой код data segment a db 5 b db 4 rez...

1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
05.11.2013, 21: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
77
78
79
80
81
82
83
84
85
86
87
88
;masm
.model  small
.stack  100h
.data
db  "Hello"
res db  'Result=$'
a1  db 2            ;Переменная a
c1  db 2            ;Переменная c
d1  db 2            ;Переменная d
x1  dw ?
Denominator dw ?        ;Знаменатель
Numerator   dw ?        ;Числитель
.code
start:
    mov ax,@data
    mov ds,ax
 
;знаменатель - Denominator ------------------------------------------------
    mov al,a1
    Imul    al          ; <ax>=a*a
    dec ax          ; <ax>=a*a-1
; подготовка к расширению d (BYTE===>WORD)
    push    ax          ; Запоминание <ax>=a*a-1 в стеке
    mov al,d1
    CBW             ; al ===> AX
    mov SI,ax           ; <SI>=<ax>=d - нужно для ЧИСЛИТЕЛЯ!!!
    pop bx          ;Восстановление содержимого стека ===> <bx>=a*a-1
    add bx,ax           ; <bx>=a*a-1+d
    mov Denominator,bx
;числитель - Numerator ----------------------------------------------------
    mov ax, 25
    IDIV    c1          ; <aL>=25/c
    CBW             ; al ===> AX
    sub ax,SI           ; <ax>=25/c-d
    add ax,2            ; <ax>=25/c-d+2
    CWD             ; aX ===> DX:AX
    mov WORD PTR Numerator, AX  ; мл. часть числител
    mov WORD PTR Numerator+2, DX; ст. часть числител
;РЕЗУЛЬТАТ
    IDIV    bx          ; <ax>=(25/c-d+2)/(a*a-1+d)
    mov x1,ax
    push    ax      ; потом пригодится
    push    ax
    mov ah,9
    mov dx, offset res
    int 21h     ; выводим Result
    pop ax
    call    hexen           ; выводим 16-ричное
    mov ax,2048h        ; выводим 'H' и пробел
    int 29h
    xchg    al,ah
    int 29h
    pop bx
    call    tobin       ; выводим двоичное
    mov al,42h
    int 29h
 
;ВЫХОДИМ
    mov ah,4Ch
    mov al,00h
    int 21h
;
tobin:  mov cx,10h      ; 16. бит
@@: xor ax,ax       ; чистим
    shl bx,1        ; сдвигаем влево,если ст. бит был 1, то флаг CY=1
    adc ax,'0'      ; прибавляем бит переноса и код '0' к ax
    int 29h         ; выводим
    loop    @B
    ret
;
hexen:  mov dx,ax       ; сохраняем
    xchg    dh,dl           ; так надо
    call    @F              ; выводим старший байт
    mov ax,dx           ; и младший
@@: xchg    ah,al
    db  0D4h, 10h   ;aam    16 - было недокументировано, масм не понимает
    push    ax
    xchg    ah,al
    call    @F      ; выводим старший полубайт
    pop ax              ; и младший
@@: 
    add al, '0'
    cmp al, '9'
    jbe @F
    add al, 7       ; конвертим в A-F
@@: int 29h
    ret
    end start
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2013, 21:25
Помогаю со студенческими работами здесь

Вывод числа на экран
Привет всем! при сложение двух надо вывести на экран вот код SECTION .data mov AH, 3 ; mov CH, 6 ; mov DL, AH ; ...

Вывод числа на экран
Скажите, а как вывести на экран число , &quot; &quot; и '\n' во встроенном ассемблере. (основня программа на c++). заранее, спасибо)!

Некорректный вывод числа на экран
В чем может быть проблемма, если после использывания процедуры OutInt proc aam add ax,3030h mov dl,ah ...

Вывод на экран числа со знаком
Проверка на отрицательное числоmov ah, a ;в регистр ah записываем значение а mov al, b ;в регистр al записываем значение b sub ah, al...

Вывод числа на экран из регистра.
Доброго времени суток. Подскажите,пожалуйста,как можно число,записанное например в регистр ax в десятичном виде, вывести на экран консоли?


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru