Ассемблирование и отладка готовых программ. Изучение системы команд и способов адресации операндов. Вариант 4

Страницы работы

Содержание работы

Министерство образования Российской Федерации

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ASSEMBLER IBM PC

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

Ассемблирование и отладка готовых программ.

Изучение системы команд и способов адресации операндов

                                                                                   Группа АМ-215

Работу выполнил: Цыбиков Д.Б.

Работу проверил:

Афанасьев В. А.

Новосибирск 2004


1. Диаграммы расположения сегментов.


Рис. 1. Диаграмма расположения сегментов программы Mov.exe в памяти

Start

Stop

Length

Name

Class

00000H

0005AH

0005BH

_TEXT

CODE

00060H

0006DH

0000EH

_DATA

DATA

00070H

0016FH

00100H

STACK

STACK

Program entry point at 0000:0000



Рис. 2. Диаграмма расположения сегментов программы Logical.exe в памяти

Start

Stop

Length

Name

Class

00000H

00048H

00049H

_TEXT

CODE

00050H

00055H

00006H

_DATA

DATA

00060H

0015FH

00100H

STACK

STACK

Program entry point at 0000:0000

2. Работа над синтаксическими ошибками при ассемблировании программы

Turbo Assembler              Version 4.1             15/03/04 08:58:45             Page 1

MOV.ASM

      1

      2

      3                                                                                  IDEAL

      4      0000                                                                    MODEL small

      5      0000                                                                    STACK 256

      6            =0210                               value      =          528

      7      0100                                                                    DATASEG

      8      0000  00                                  exCode                DB         0

      9      0001  01 02 04                        b_x        DB         1,2,4

     10     0004  0008 0010 0020 0040    w_x      DW        8,16,32,64

     11     000C                                       Label                   b_var   byte

     12     000C  1234                             w_var                  DW        1234h

     13     000E                                                                    CODESEG

     14     0000                                        Start:                  ;mov ax,@data              ;Установка в ds        адреса

     15     0000  B8 0000s                                                   mov ds,@data                 ;сегмента данных

**Error** MOV.ASM(16) Illegal use of segment register

;в DS нельзя адресовать непосредственно

     16                                                                                 ;Непосредственная адресация

     17     0003  B0 00                                                        mov al,256                   ;255=0FFh-беззнаковое число

**Error** MOV.ASM(18) Constant too large

;константа для байта лежит в диапазоне от 0 до 255

     18     0005  B4 FF                                                        mov ah,-1                     ;[4];-1=0FFh-отрицательное число

     19     0007  B8 007D                                                   mov ax,value/5+20              ;[5];Загрузка в    ах значения константного

     20                                                                                                                       ;выражения

     21     000A  BB 0004r                                                  mov bx,OFFSET w_x  ;[6] адрес переменной w_x в bx

     22                                                                                 ;Регистровая и прямая адресации

     23     000D  8B D0                                                       mov dl,ax                     ;[7]

**Error** MOV.ASM(24) Operand types do not match

     Операнды разных форматов

     24     000F  B0 00                                                        mov al,,[b_x] ;al=b_x[0]=01h

**Error** MOV.ASM(25) Need address or register

Синтаксическая ошибка – лишняя запятая

     25     0011  8B 16 0004r                                              mov dx,[w_x] ;dx=w_x[0]=0008h

     26     0015  8B 36 000Cr                                             mov si,[w_var]             ;si=1234h

     27     0019  A0 000Cr                                                  mov al,[b_var]             ;al=34h

     28     001C  8A 26 000Dr                                            mov ah,[b_var+1]        ;ah=12h

     29                                                                                 ;Косвенная    регистровая

     30     0020  8B 0F                                                        mov cx,[bx]    ;[13]

     31     0022  C7 07 FFFE                                              mov [word bx],-2         ;[14]

     32

     33                                                                                 ;Базовая адресация

     34     0026  8B 47 02                                                   mov ax,[bx+2]              ;[15]

     35     0029  C7 47 02 0018                                          mov [word bx+2],24    ;[16]

     36

     37                                                                                 ;Индексная    адресация

     38     002E  8B 36 0000                                               mov si, operand

**Error** MOV.ASM(39) Undefined          symbol: OPERAND

Символ  OPERAND не определен

*Warning* MOV.ASM(39) Pointer expression needs brackets

     39     0032  8A 84 0001r                                              mov al,[si+b_x]                 ;[18]

     40                                                                                 ;Базово-индексная адресация

     41     0036  FF 06 0000                                                inc [si]

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
75 Kb
Скачали:
0