close

Вход

Забыли?

вход по аккаунту

?

ОргЭВМ ЛР1

код для вставкиСкачать
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
"ТВЕРСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ"
Кафедра электронных вычислительных машин
Лабораторная работа №1 по дисциплине: "Организация ЭВМ"
не тему: "Обработка строк на языке ассемблера".
Выполнил: Николаев В.Ю.
Группа: ВМКСС-0604
Проверил: Тулупова Т.В.
Тверь
2009
Задание на лабораторную работу:
Создать программу вывода на экран текстовой строки в трех вариантах:
1. с использованием только сегмента кода 2. с использованием сегмента кода и сегмента данных
3. с использованием трех сегментов (кода, данных и стека)
Также необходимо выполнить трансляцию и компоновку, получить листинг программы и определить размер в каждом случае.
Выполнение лабораторной работы:
1.Исходный код программы с сегментом кода:
.model small code segment 'code'
assume cs:code,ds:code
start:
; add your code here
mov ax,code
mov ds,ax lea dx, pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key.... mov ah, 1
int 21h
mov ax, 4c00h ; exit to OS
int 21h pkey db "Hello world!$" ends
end start ; set entry point and stop the assembler.
Листинг:
Turbo Assembler Version 3.1 12/10/09 09:57:56 Page 1
Lr1.asm
10000 .model small
20000 code segment 'code'
3 assume cs:code,ds:code
40000 start:
5 ; add your code here
60000 B8 0000s mov ax,code
70003 8E D8 mov ds,ax
8
90005 BA 0015r lea dx, pkey
100008 B4 09 mov ah, 9
11000A CD 21 int 21h; output stringat ds:dx
12
13 ; waitfor anykey....
14000C B4 01 mov ah, 1
15000E CD 21 int 21h
16
170010 B8 4C00 mov ax, 4c00h ; exit to OS
180013 CD 21 int 21h
190015 48 65 6C 6C 6F 2077+ pkey db "Helloworld!$"
20 6F 72 6C 64 21 24
210022ends
22end start ; set entry point and stop the assembler.
2.Исходный код программы с сегментами кода и данных:
.model small
data segment 'data'
; add your data here!
pkey db "press any key...$"
data ends
code segment 'code'
assume cs:code,ds:data
start:
; set segment registers:
mov ax, data
mov ds, ax
; add your code here
mov dx, OFFSET pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key.... mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h code ends
end start ; set entry point and stop the assembler.
Листинг:
Turbo Assembler Version 3.1 12/10/09 10:16:09 Page 1
Lr1_2.asm
10000 .model small
20000 data segment 'data'
3; add your data here!
40000 70 72 65 73 73 2061+ pkey db "pressany key...$"
5 6E 79 20 6B 65 792E+
6 2E 2E 24
70011 data ends
80000 code segment 'code'
9assume cs:code,ds:data
100000 start:
11; set segment registers:
120000 B8 0000s mov ax, data
130003 8E D8 mov ds, ax
14
15; add your code here
16
170005 BA 0000rmov dx, OFFSETpkey
180008 B4 09mov ah, 9
19000A CD 21int 21h; output stringat ds:dx
20
21; waitfor anykey....
22000C B4 01mov ah, 1
23000E CD 21int 21h
24
250010 B8 4C00mov ax, 4c00h ; exit to operating system.
260013 CD 21int 21h
270015code ends
28end start ; set entry point and stop the assembler.
3.Исходный код программы с сегментами кода, данных и стека:
.model small
data segment 'data'
; add your data here!
pkey db "press any key...$"
data ends
;------------------------------------------------------
stack segment stack 'stack'
db 32 dup(?)
stack ends
;------------------------------------------------------
code segment 'code'
assume cs:code,ds:data
start:
; set segment registers:
mov ax, data
mov ds, ax
; add your code here
mov dx, OFFSET pkey
mov ah, 9
int 21h ; output string at ds:dx
; wait for any key.... mov ah, 1
int 21h
mov ax, 4c00h ; exit to operating system.
int 21h code ends
;------------------------------------------------------
end start ; set entry point and stop the assembler.
Листинг:
Turbo Assembler Version 3.1 12/10/09 10:21:18 Page 1
Lr1_3.asm
10000 .model small
20000 data segment 'data'
3 ; add your data here!
40000 70 72 65 73 73 2061+ pkey db "pressany key...$"
5 6E 79 20 6B 65 792E+
6 2E 2E 24
70011 data ends
8;------------------------------------------------------
90000 stack segment stack 'stack'
*Warning* Lr1_3.asm(7) Reservedword used as symbol: STACK
100000 20*(??) db 32 dup(?)
110020 stack ends
12;------------------------------------------------------
130000 code segment 'code'
14 assume cs:code,ds:data
150000 start:
16; set segment registers:
170000 B8 0000smov ax, data
180003 8E D8mov ds, ax
19
20; add your code here
21
220005 BA 0000rmov dx, OFFSETpkey
230008 B4 09mov ah, 9
24000A CD 21int 21h; output stringat ds:dx
25
26; waitfor anykey....
27000C B4 01mov ah, 1
28000E CD 21int 21h
29
300010 B8 4C00mov ax, 4c00h ; exit to operating system.
310013 CD 21int 21h
320015code ends
33;------------------------------------------------------
34end start ; set entry point and stop the assembler.
Размер программы:
Code - 440 bytes
Data, Code - 555 bytes
Data, Code, Stack - 790 bytes
Документ
Категория
Рефераты
Просмотров
11
Размер файла
198 Кб
Теги
оргэвм, лр1
1/--страниц
Пожаловаться на содержимое документа