ВУЗ:
Составители:
11
процессора.
Пример 1.1. Программа сложения 32-разрядных операндов
.386
Assume CS:code, DS:data, SS:stk
; Простая программа сложения 32-разрядных чисел
data segment para public "data" ; Сегмент данных
sum dd 0 ; Переменная для суммы
data ends
stk segment para stack "stack" ; Сегмент стека
db 256 dup (?) ; Буфер для стека
stk ends
code segment para public "code" use16 ; Сегмент кода
begin:
mov ax,data ; Адрес сегмента данных в регистр AX
mov ds,ax ; Запись AX в DS
; Основной фрагмент программы
mov eax,12345678h ; Первый 32-разрядный операнд
add eax,87654321h ; Второй 32-разрадный операнд
mov dword ptr sum,eax ; Запись результата в sum
; Завершение программы
mov ax,4C00h ; Функция завершения программы
int 21h ; Функция Dos
code ends
END begin
Поскольку в данном примере обрабатываются 32-разрядные числа, в
текст программы необходимо включить директиву .386, разрешающую
использование команд 32-разрядных процессоров. Кроме того, при
компоновке программы с помощью программы tlink.exe следует
указать ключ /3 для разрешения 32-разрядных операций.
Если рассмотреть листинг этой программы, можно увидеть как ко-
манды МП 8086 для работы с 16-разрядными операндами, так и команды
МП 386 для работы с 32-разрядными операндами. Для облегчения текста
из протокола трансляции удалены строчные комментарии.
1 .386
2 Assume CS:code, DS:data, SS:stk
3
процессора. Пример 1.1. Программа сложения 32-разрядных операндов .386 Assume CS:code, DS:data, SS:stk ; Простая программа сложения 32-разрядных чисел data segment para public "data" ; Сегмент данных sum dd 0 ; Переменная для суммы data ends stk segment para stack "stack" ; Сегмент стека db 256 dup (?) ; Буфер для стека stk ends code segment para public "code" use16 ; Сегмент кода begin: mov ax,data ; Адрес сегмента данных в регистр AX mov ds,ax ; Запись AX в DS ; Основной фрагмент программы mov eax,12345678h ; Первый 32-разрядный операнд add eax,87654321h ; Второй 32-разрадный операнд mov dword ptr sum,eax ; Запись результата в sum ; Завершение программы mov ax,4C00h ; Функция завершения программы int 21h ; Функция Dos code ends END begin Поскольку в данном примере обрабатываются 32-разрядные числа, в текст программы необходимо включить директиву .386, разрешающую использование команд 32-разрядных процессоров. Кроме того, при компоновке программы с помощью программы tlink.exe следует указать ключ /3 для разрешения 32-разрядных операций. Если рассмотреть листинг этой программы, можно увидеть как ко- манды МП 8086 для работы с 16-разрядными операндами, так и команды МП 386 для работы с 32-разрядными операндами. Для облегчения текста из протокола трансляции удалены строчные комментарии. 1 .386 2 Assume CS:code, DS:data, SS:stk 3 11
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »