Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Основы NASM. Отладка кода

Автор:   •  Октябрь 29, 2019  •  Лабораторная работа  •  927 Слов (4 Страниц)  •  377 Просмотры

Страница 1 из 4

Лабораторная работа №2

Операторы условия, циклы, арифметические операции

Цель работы:

Изучить операторы ветвления, принципы построения циклов и арифметические операции.

Задание:

1. Написать программу, которая выводит на экран предопределенную в коде строку, содержащую разные типы символов (заглавные и прописные буквы, цифры, знаки).

2. Составить программу печати целого числа.

3. Согласно своему варианту добавить преобразование этой строки в другую и вывести на экран результат.

Вариант задания (5):

Смена регистра на нижний

Исходный код программы:

global  _start

 

section .data

; предопределенная текстовая строка

in_str  db 'Hello, WORLD!', 10

; длина предопределенной строки

in_str_len  equ $-in_str

section .bss

; буфер для хранения обработанной строки

out_str resb 255

section .text

_start:

; Вывод исходной текстовой строки

        mov     eax, 4          ; write(

        mov     ebx, 1          ;   stdout,

        mov     ecx, in_str     ;   in_str,

        mov     edx, in_str_len ;   in_str_len)

        int 80h

; Преобразование числа, заданного в регистре EAX, в строковую запись

        mov eax, 8763125        ; число для вывода

        mov ecx,0

p3:     mov edx,0

        mov ebx,10              ; 10=основание системы счисления

        div ebx                 ; деление eax на ecx, результат - в edx

        add edx, 48             ; 48=ASCII-код '0'

        push dx                 ; сохранение вычисленного разряда числа в стеке

        inc ecx

        cmp eax,0

        jne p3

; извлечение вычисленных разрядов числа из стека вывод в консоль

p4:     pop ax

        push ecx

        call char_out

...

Скачать:   txt (4.4 Kb)   pdf (135.4 Kb)   docx (30.1 Kb)  
Продолжить читать еще 3 страниц(ы) »
Доступно только на Essays.club