Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Jazik_Assemblera_dlja_IBM_PC_i_programmir

.pdf
Скачиваний:
84
Добавлен:
27.03.2015
Размер:
2 Мб
Скачать
☆

ПРИЛОЖЕНИЯ

__________________________________________________________________________

ПРИЛОЖЕНИЕ 1: Коды ASCII-символов

________________________________________________________________

Ниже представлены первые 128 символов ASCII-кода. В руководстве по языку BASIC приведены остальные 128 символов. На помним, что шест.20 представляет стандартный символ пробела.

Таблица A-1. Набор ASCII символов

__________________________________________________________________________

Дес

Шест

Симв

Дес

Шест Симв

Дес

Шест Симв

Дес

Шест Симв

000

00h

Нуль

032

20h

sp

064

40h

@

096

60h

`

001

01h

Начало заголовка

033

21h

!

065

41h

A

097

61h

a

002

02h

Начало текста

034

22h

"

066

42h

B

098

62h

b

003

03h

Конец текста

035

23h

#

067

43h

C

099

63h

c

004

04h

Конец передачи

036

24h

$

068

44h

D

100

64h

d

005

05h

КТМ

037

25h

%

069

45h

E

101

65h

e

006

06h

Да

038

26h

&

070

46h

F

102

66h

f

007

07h

Звонок

039

27h

'

071

47h

G

103

67h

g

008

08h

Возврат на шаг

040

28h

(

072

48h

H

104

68h

h

009

09h

Гориз.табуляция

041

29h

)

073

49h

I

105

69h

i

010

0Ah

Перевод строки

042

2Ah

*

074

4Ah

J

106

6Ah

j

011

0Bh

Верт.табуляция

043

2Bh

+

075

4Bh

K

107

6Bh

k

012

0Ch

Перевод страницы

044

2Ch

,

076

4Ch

L

108

6Ch

l

013

0Dh

Возврат каретки

045

2Dh

-

077

4Dh

M

109

6Dh

m

014

0Eh

Shift out

046

2Eh .

078

4Eh

N

110

6Eh

n

015

0Fh

Shift in

047

2Fh

/

079

4Fh

O

111

6Fh

o

016

10h

Data line esc

048

30h

0

080

50h

P

112

70h

p

017

11h

Управление 1

049

31h

1

081

51h

Q

113

71h

q

018

12h

Управление 2

050

32h

2

082

52h

R

114

72h

r

019

13h

Управление 3

051

33h

3

083

53h

S

115

73h

s

020

14h

Управление 4

052

34h

4

084

54h

T

116

74h

t

021

15h

Нет

053

35h

5

085

55h

U

117

75h

u

022

16h

Синхронизация

054

36h

6

086

56h

V

118

76h

v

023

17h

Конец блока

055

37h

7

087

57h

W

119

77h

w

024

18h

Анулирование

056

38h

8

088

58h

X

120

78h

x

025

19h

End of medium

057

39h

9

089

59h

Y

121

79h

y

026

1Ah

Замена

058

3Ah

:

090

5Ah

Z

122

7Ah

z

027

1Bh

Escape

059

3Bh

;

091

5Bh

[

123

7Bh

{

028

1Ch

Раздел.файла

060

3Ch

<

092

5Ch

\

124

7Ch

|

029

1Dh

Раздел.группы

061

3Dh

=

093

5Dh

^

125

7Dh

}

030

1Eh

Раздел.записи

062

3Eh

>

094

5Eh

126

7Eh

~

031

1Fh

Раздел.единицы

063

3Fh

?

095

5Fh

_

127

7Fh Забой

ПРИЛОЖЕНИЕ

2:

Шестнадцатерично-десятичные преобразования

 

________________________________________________________________

 

В данном

приложении

представлены

приемы преобразования

между

шестнадцатеричным и десятичным форматами.

В первом разделе показан пример

преобразования шест. A7B8 в десятичное 42936, а во втором - 42936 обратно в шест. A7B8.

Преобразование шестнадцатеричного формата в десятичный

--------------------------------------------------------

Для перевода шест. A7B8 в десятичное число необходимо последовательно, начиная с самой левой шест. цифры (A), умножать на 16 и складывать со следующей цифрой. Так как операции выполняются в десятичном формате, то шест. числа от A до F необходимо преобразовать в десятичные от

10 до 15.

Первая цифра: A (10)

10

Умножить на 16

х16

 

---

Прибавить следующую цифру, 7

160

+7

 

---

Умножить на 16

167

х16

 

----

Прибавить следующую цифру, B (11)

2672

+11

 

----

Умножить на 16

2683

х16

 

-----

Прибавить следующую цифру, 8

42928

+8

Десятичное значение

-----

42936

Можно использовать также таблицу преобразования. Для шест. числа A7B8 представим правую цифру (8) как позицию 1, следующую влево цифру (B) как позицию 2, следующую цифру (7) как позицию 3 и самую левую цифру (A) как позицию 4. Из таблицы B-1 выберем значения для каждой шест. цифры:

Для позиции

1 (8), столбец

1

 

8

 

 

 

Для позиции

1 (8), столбец

1

 

176

 

 

 

Для позиции

1 (8), столбец

1

 

1792

 

 

 

Для позиции

1 (8), столбец

1

 

40960

 

 

 

Десятичное значение

 

-----

 

 

 

 

42936

 

 

 

Преобразование десятичного формата в шестнадцатеричный

 

---------------------------------------------------------

 

Для преобразования десятичного числа

42936 в шестнадцатеричный формат

необходимо сначала исходное число 42936

разделить

на

16;

число,

получившееся в остатке, (6)

является младшей

шестнадцатеричной

цифрой.

Затем полученное частное необходимо снова разделить на

16

и полученный

остаток (11 или B) дает следующую влево шестнадцатеричную цифру. Продолжая

таким образом деления до тех пор, пока в частном не получится

0,

получим

из остатков все необходимые шестнадцатеричные цифры.

 

 

 

Частное

Остаток

Шест.

 

 

 

42936 / 16

2683

8

 

8

(младшая цифра)

 

2683 / 16

167

11

 

B

 

 

 

 

167 / 16

10

7

 

7

(старшая цифра)

 

10 / 16

0

10

 

A

 

Для преобразования чисел из десятичного формата в шестнадцатеричный можно также воспользоваться таблицей B-1. Для десятичного числа 42936 необходимо найти в таблице число равное или ближайшее меньшее исходному, и записать соответствующую шестнадцатеричную цифру и ее позицию. Затем следует вычесть найденное десятичное число из 42936 и с полученной разностью проделать проделать ту же операцию:

Дес. Шест.

 

 

Исходное десятичное число

 

42936

A000

 

 

 

 

 

Вычесть ближайшее

меньшее

 

40960

 

 

 

 

 

Разность

 

 

 

-----

 

 

 

 

 

 

 

меньшее

 

1976

700

 

 

 

 

 

Вычесть ближайшее

 

1792

 

 

 

 

 

Разность

 

 

 

----

 

 

 

 

 

 

 

меньшее

 

184

B0

 

 

 

 

 

Вычесть ближайшее

 

176

 

 

 

 

 

Разность

 

 

 

---

8

 

 

 

 

 

 

 

 

8

 

 

 

 

 

Результирующее шест. число

 

----

 

 

 

 

 

 

A7B8

 

 

 

 

Таблица B-1. Шестнадцатерично-десятичные преобразования

¬

¦-------------Ш

 

T-----------

 

T----------

 

T--------

T-------

T------

T-----

T-----

 

¦Ш

 

¦Ш

 

¦Ш

¦Ш

¦Ш

¦Ш

¦Ш

¦

¦Е

 

¦Е

 

¦Е

 

¦Е

¦Е

¦Е

¦Е

¦Е

¦

¦С

ДЕС

¦С

ДЕС

¦С

ДЕС

¦С

¦С

¦С

¦С

¦С

¦

¦Т

¦Т

¦Т

¦Т

ДЕС ¦Т

ДЕС¦Т

ДЕС¦Т ДЕС¦Т ДЕС¦

+------------

 

+-----------

 

+----------

 

+--------

+-------

+------

+-----

+-----

+

¦0

 

0¦0

 

0¦0

 

0¦0

0¦0

0¦0

0¦0

0¦0

0¦

¦1

268435456¦1

16777216¦1

1048576¦1

65536¦1

4096¦1

256¦1

16¦1

1¦

¦2

536870912¦2

33554432¦2

2097152¦2

131072¦2

8192¦2

512¦2

32¦2

2¦

¦3

805306368¦3

50331648¦3

3145728¦3

196608¦3

12288¦3

768¦3

48¦3

3¦

¦4 1073741824¦4

67108864¦4

4194304¦4

262144¦4

16384¦4

1024¦4

64¦4

4¦

¦5 1342177280¦5

83886080¦5

5242880¦5

327680¦5

20480¦5

1280¦5

80¦5

5¦

¦6 1610612736¦6

100663296¦6

6291456¦6

393216¦6

24576¦6

1536¦6

96¦6

6¦

¦7 1879048192¦7

117440512¦7

7340032¦7

458752¦7

28672¦7

1792¦7

112¦7

7¦

¦8 2147483648¦8

134217728¦8

8388608¦8

524288¦8

32768¦8

2048¦8

128¦8

8¦

¦9 2415919104¦9

150994944¦9

9437184¦9

589824¦9

36864¦9

2304¦9

144¦9

9¦

¦A 2684354560¦A

167772160¦A

10485760¦A

655360¦A

40960¦A

2560¦A

160¦A

10¦

¦B 2952790016¦B

184549376¦B

11534336¦B

720896¦B

45056¦B

2816¦B

176¦B

11¦

¦C 3221225472¦C

201326592¦C

12582912¦C

786432¦C

49152¦C

3072¦C

192¦C

12¦

¦D 3489660928¦D

218103808¦D

13631488¦D

851968¦D

53248¦D

3328¦D

208¦D

13¦

¦E 3758096384¦E

234881024¦E

14680064¦E

917504¦E

57344¦E

3584¦E

224¦E

14¦

¦F 4026531840¦F

251658240¦F

15728640¦F

983040¦F

61440¦F

3840¦F

240¦F

15¦

+------------

8

+-----------

7

+----------

6

+--------

+-------

+------

+-----

+-----

+

¦

¦

¦

¦

5 ¦ 4 ¦ 3 ¦ 2 ¦ 1 ¦

L------------

 

+-----------

 

+----------

 

+--------

+-------

+------

+-----

+------

 

 

Шестнадцатиpичные позиции

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ 3:

 

 

 

Зарезервированные слова

 

 

________________________________________________________________

 

Большинство из следующих зарезервированных слов при использовании их для определении элементов данных могут привести к ошибкам ассемблирования (в ряде случаев - к весьма грубым):

 

 

Имена регистров

 

 

AH

BH

-----------------

SS

BP

CH

DH

CS

AL

BL

CL

DL

DS

SI

SP

AX

BX

CX

DX

ES

DI

 

 

 

Мнемокоды

 

 

AAA

DIV

-----------

OR

SBB

JLE

JS

AAD

ESC

JMP

JZ

OUT

SCAS

AAM

HLT

JNA

LAHF

POP

SHL

AAS

IDIV

JNAE

LDS

 

POPF

 

SHR

 

 

ADC

IMUL

JNB

LEA

 

PUSH

 

STC

 

 

ADD

IN

JNBE

LES

 

PUSHF

STD

 

 

AND

INC

JNE

LOCK

 

RCL

 

STI

 

 

CALL

INT

JNG

LODS

 

RCR

 

STOS

 

CBW

INTO

JNGE

LOOP

 

REP

 

SUB

 

 

CLC

IRET

JNL

LOOPE

 

REPE

 

TEST

 

CLD

JA

JNLE

LOOPNE

 

REPNE

WAIT

 

CLI

JAE

JNO

LOOPNZ

 

REPNZ

XCHG

 

CMC

JB

JNP

LOOPZ

 

REPZ

 

XLAT

 

CMP

JBE

JNS

MOV

 

RET

 

XOR

 

 

CMPS

JCXZ

JNZ

MOVS

 

ROL

 

 

 

 

CWD

JE

JO

MUL

 

ROR

 

 

 

 

DAA

JG

JP

NEG

 

SAHF

 

 

 

 

DAS

JGE

JPE

NOP

 

SAL

 

 

 

 

DEC

JL

JPO

NOT

 

SAR

 

 

 

 

 

Директивы ассемблера

 

 

 

 

 

 

ASSUME

----------------------

LOCAL

PURGE

 

END

EXTRN

IFNB

 

 

COMMENT

ENDIF

GROUP

IFNDEF

 

MACRO

RECORD

 

DB

ENDM

IF

IF1

 

NAME

 

REPT

 

DD

ENDP

IFB

IF2

 

ORG

 

SEGMENT

 

DQ

ENDS

IFDEF

INCLUDE

 

OUT

 

STRUC

 

DT

EQU

IFDIF

IRP

 

PAGE

 

SUBTTL

 

DW

EVEN

IFE

IRPC

 

PROC

 

TITLE

 

ELSE

EXITM

IFIDN

LABEL

 

PUBLIC

 

 

 

 

Прочие элементы языка

 

 

 

 

 

 

BYTE

-----------------------

PRT

 

THIS

 

FAR

LENGTH

MOD

 

 

 

COMMENT

GE

LINE

NE

 

SEG

 

TYPE

 

CON

GT

LT

NEAR

 

SHORT

WIDTH

 

DUP

HIGH

LOW

NOTHING

 

SIZE

 

WORD

 

EQ

LE

MASK

OFFSET

 

STACK

 

 

 

ПРИЛОЖЕНИЕ 4:

 

РЕЖИМЫ АССЕМБЛИРОВАНИЯ И КОМПОНОВКИ

________________________________________________________________

 

Ассемблирование

программы

 

 

 

 

 

 

---------------------------

две

версии

ассемблера:

На дискете с ассемблерным

пакетом

имеются

ASM.EXE - сокращенная версия, в которой

отсутствуют некоторые возможности,

и MASM.EXE - полная версия, имеющая

все

возможности

и

являющаяся

предпочтительной.

Для ассемблирования

вставьте

ассемблерную

дискету в

дисковод А, а дискету с исходной программой -

в

дисковод

В.

Кто

имеет

винчестер или RAM-диск (виртуальный диск

в памяти), могут в следующих

примерах заменить соответствующие номера дисководов.

Введите команды MASM

(или ASM), что приведет к загрузке программы ассемблера с диска в

память.

На экране появится:

 

 

 

 

 

 

 

 

 

source filename [.ASM]:

 

 

 

 

 

 

 

object filename [filename.OBJ]:

 

 

 

 

 

 

source listing

[NUL.LST]:

 

 

 

 

 

 

cross-reference [NUL.CRF]:

Курсор при этом расположится в конце первой строки, где необходимо указать имя файла. Введите номер дисковода (если он не определен по умолчанию) и имя файла. Не следует набирать тип файла ASM - ассемблер подразумевает это. Во втором запросе предполагается аналогичное имя файла

(но можно его заменить). Если необходимо, введите номер дисковода. Третий запрос предполагает, что листинг ассемблирования программы не требуется. Последний запрос предполагает, что листинг перекрестных ссылок не требуется. Для получения листинга на дисководе В введите В:.

Если вы хотите оставить значения по умолчанию, то в трех последних запросах просто нажмите Return. Ниже приведен пример запросов и ответов, в результате которых ассемблер должен создать OBJ-, LST- и CRF-файлы на дисководе В:

source filename [.ASM]:B:ASMPROG [Return] object filename [filename.OBJ]:B: [Return] source listing [NUL.LST]:B: [Return] cross-reference [NUL.CRF]:B: [Return]

Альтернативный вариант вызова ассемблера:

MASM B:name.ASM,B:name.OBJ,B:name.LST,B:name.CRF

В следующей команде используются значения по умолчанию:

MASM B:filename,B:,B:,В:;

-первый параметр B:filename идентифицирует исходную программу, которая должна быть ассемблирована;

-второй параметр В: указывает ассемблеру на необходимость записать объектный модуль на дисковод В под именем filename.OBJ;

-третий параметр В: указывает ассемблеру на необходимость

записать листинг ассемблирования на дисковод В

под

именем

filename.LST;

 

 

-четвертый параметр В: приводит к генерации файла перекрестных ссылок под именем filename.CRF;

-Точка с запятой в конце команды указывает ассемблеру на необходимость игнорировать любые последующие параметры. Хотя в приведенном примере таких параметров нет, кодирование точки с запятой является хорошим правилом для других вариантов команды.

При наличии ошибок ассемблирования программа ASM выдает

только

коды

ошибок, которые объяснены в руководстве по Ассемблеру, в

то время

как

программа MASM выдает и коды ошибок, и пояснения к ним.

Всего имеется

около 100

сообщений об ошибках.

 

 

Режимы ассемблирования включают следующие:

 

 

MASM /A

организовать исходные сегменты в алфавитном порядке;

 

MASM /D

генерировать LST-файл в обоих проходах ассемблирования;

 

MASM /E

ассемблировать команды для сопроцессора 8087 и генерировать

MASM /N

связи для языка ФОРТРАН и пакета эмуляции языка ПАСКАЛЬ;

 

отменить генерацию таблицы идентификаторов;

 

 

MASM /R

ассемблировать команды для сопроцессора 8087 (аналогично /E);

MASM /S

сохранить исходные сегменты в оригинальной последовательности.

 

Файл перекрестных ссылок

 

 

--------------------------

Генерируемый в ходе ассемблирования

CRF-файл может использоваться для

создания листинга

перекрестных ссылок

на метки, идентификаторы

и

переменные в программе. Для получения CRF-фала необходимо

на четвертый

запрос ассемблера ответить, например. В:, полагая, что файл

должен

быть

создан на диске В:

 

 

 

 

cross-reference [NUL.CRF]:B: [Return]

Для преобразования полученного CRF-файла в удобно отсортированную таблицу перекрестных ссылок используется программа CREF, имеющаяся на ассемблерном диске. Введите команду CREF; на экране появится два запроса:

Cref filename [.CRF]:

List filename [cross-ref.REF]:

На первый запрос введите имя CRF-файла, например B:ASMPROG. На второй запрос можно ввести только номер дисковода и получить имя по умолчанию. Такой выбор приведет к преобразованию CRF-файла в файл перекрестных ссылок по имени filename.REF на дисководе В. Можно также кодировать всю команду в одной строке, например:

CREF В: filename. CRF, CON иди CREF B:filename.CRF,B:

В первом примере файл перекрестных ссылок выводится на экран. Второй пример записывает файл по имени filename.REF на диск В.

Компоновка программ

 

 

 

---------------------

дисковод А,

а

Для компоновки ЕХЕ-программы вставьте дискету DOS в

дискету с программой - в дисковод В.

Те, кто имеют винчестер или RAM-диск

(виртуальный диск в памяти), могут в следующих примерах

заменить

соответствующие номера дисководов.

Простейший способ запуска компоновщика

представляет ввод команды LINK, что приводит к загрузке

компоновщика

с

диска в память. На экране появятся следующие запросы:

 

 

 

Object Modules [.OBJ]:

Run File [d:filename.ЕХЕ]:

List File [NUL.MAP]:

Libraries [.LIB]:

Курсор при этом расположится в конце первой строки, где необходимо указать имя файла. Введите номер дисковода (если он не определен по умолчанию) и имя файла. Не следует набирать тип файла OBJ - компоновщик подразумевает это. Во втором запросе предполагается аналогичное имя файла (но можно его заменить). Если необходимо, введите номер дисковода. Третий запрос предполагает, что листинг компоновки программы не требуется. Последний запрос имеет отношение к библиотечным средствам DOS.

Если вы хотите оставить значения по умолчанию, то в трех последних запросах просто нажмите Return. Ниже приведен пример запросов и ответов, в результате которых компоновщик должен создать файлы ЕХЕ и CON:

Object Modules [.OBJ]:B:ASMPROG [return]

Run File [d:filename.ЕХЕ]:В: [return]

List File [NUL.MAP]:CON [return]

Libraries [.LIB]: [return]

Ответ CON приводит к выводу карты компоновки на экран для проверки на наличие сообщений об ошибках. Команду LINK можно сформировать также следующим образом:

LINK B:ASMPROG,В:,CON

 

 

Описание остальных режимов компоновщика LINK можно

найти

в

руководстве no DOS.

 

 

Программа ЕХЕ2ВIN

 

 

-------------------

 

для

Программа EXE2BIN.COM в операционной системе DOS используется

преобразования ЕХЕ-модулей в СОМ-модули, при этом полагается,

что

программы подготовлены в соответствии с требованиями для СОМ-модулей.

Для

запуска программы EXE2BIN вставьте дискету DOS в дисковод А,

а дискету с

ЕХЕ-файлом - в дисковод В. Для винчестерского диска следует

использовать

дисковод С. Введите следующую команду:

 

 

EXE2BIN B:filename,B:filename.COM

Первым операндом является имя ЕХЕ-файла, которое вводится без указания типа. Второй операнд представляет собой имя СОМ-файла; здесь можно изменить имя программы, но обязательно следует указывать тип СОМ. После того как преобразование будет выполнено, можно удалить файлы OBJ и ЕХЕ.

Ответы на некоторые вопросы

__________________________________________________________________________

1.1.а) 01001101; в) 00111111.

1.2.а) 0101; в) 10101.

1.3.а) 00100010; в) 00100000.

1.4.а) 11101101; в) 11000110.

1.5.а) 00111000; в) 10000000.

1.6.а) 51; в) 5D.

1.7.а) 23С8; в) 8000.

1.8.а) 13; в) 59; д) FFF.

1.9.а) Стек, данные и код; в) параграф.

1.l0. a) AX, BX, CX, DX, Dl, SI; в) AX и DX; д) флаги.

1.11.a) ROM (постоянная память выполняет процедуры начальной загрузки и управляет операциями ввода-вывода.

б) RAM (оперативная память) представляет собой область, где находятся программы и данные при выполнении.

2.1.а) В82946.

2.2.Е CS:101 54.

2.3. a) MOV

AX, 3004

ADD

AX,3000

RET

 

в) R и IP устанавливают IP в 0.

2.4. Произведение равно 0612Н.

2.6.Использовать команду N для указания имени программы (например, СОМ), установить длину программы в регистре CX и с помощью команды W записать программу.

3.1.TITLE и PAGE.

3.2.а), б) и в) корректны; г) неверно, так как начинается с цифры; д) корректно только при ссылке на регистр AX.

3.4.a) END; в) ENDS.

3.6.RET является командой, которая обеспечивает возврат в операционную систему; END является директивой, которая указывает ассемблеру, что в тексте более нет команд для ассемблирования.

3.7. ASSUME

CS:CDSEG,DS:DATSEG,SS:STKSEG.

3.8. PUSH

DS

SUB

AX, AX

PUSH

AX

4.1.а) Ввести команду MASM и ответить на запросы: В:TEMPY В:, В: и В:

4.2.a) DEBUG B:TEMPY.EXE; б) B:TEMPY

4.3.а) Резервная копия исходного файла; в) файл листинга ассемблирования с исходным и объектным кодом; д) файл объектного кода; ж) карта компоновки.

4.4. MOV

AX,DATSEG

MOV

DS,AX

4.5. MOV

AL,30H

SHL

AL,1

MOV

BL,18H

MUL

BL

4.6. Сегмент данных должен выглядеть следующим образом:

FLDA

OB

28H

FLDB

DB

14H

FLDC

DW

?

5.1. а) 2; в) 10; д) 8.

 

5.2.

CONAME

DB

'RGB Electronics'

5.3. a)

FLDA

DD

73H

в)

FLDC

DW

?

д)

FLDE

DW

16, 19, 20, 27, 30

5.4.a) ASCII 3236; б) 1AH.

5.5.а) 26; в) ЗА732500.

5.6. a)

MOV

AX,320

в)

ADD

BX,40H

д)

SHL

FLDB,1 (или SAL)

6.1. 64 К.

6.3.Это использует старшую область COM-программы или при недостатке памяти - старшие адреса оперативной памяти.

6.4.EXE2BIN SAMPLE,SAMPLE.COM.

7.1.+127 и -128. Операнд представляет собой однобайтовое значение от 00Н

до 7FH (от 0 до + 127) и от 80Н до 0FFH (от -128 до -1).

7.2.а) 62В; в) 5ЕА (преобразует С6 в двоичное дополнение).

7.3.Приводим одно из многих возможных решений:

MOV AX,00

MOV BX,01

MOV CX,12

MOV DX,00

В20:

ADD

AX,BX

;Номер в AX

MOV

BX,DX

 

MOV

DX,AX

 

LOOP B20

 

7.4. а) CMP DX,CX

в) JCXZ адрес

д) CMP BX,AX

JA адрес

или CMP CX,0

JLE или JNG

 

JZ адрес

 

7.5. a) OF (1); в) ZF (1); д) DF (1)

7.7.Первая (основная) процедура PROC должна иметь атрибут FAR, так как ее вызов и выполнение происходят из операционной системы. Атрибут NEAR указывает на то, что адрес процедуры находится внутри конкретной программы (т.е. в пределах одного сегмента ассемблерного модуля).

7.9. Три (по одному на каждый вызов CALL).

7.10.а) 1001 1010; в) 1111 1011; д) 0001 1100.

7.12.а) 01011100 11011100; в) 11001101 11001000.

8.1. Строка = 18Н, столбец = 27Н.

8.3.

MOV

AX,0600H

;3апрос

 

MOV

BH,07

 

; функции

 

MOV

CX,OCOOH

; очистки

 

MOV

DX,164FH

; экрана

 

INT

10Н

 

 

8.4. а) Вызов базовой

функции DOS:

 

MSSGE

DB

'What Is the date (mm/dd/yy)?',07H,'$'

 

MOV

AH,09

;Запрос функции

 

MOV

DX,MSSGE

;вывода сообщения

 

INT

21H

 

 

8.5. а) Вызов базовой

функции DOS:

 

 

DATEPAR

LABEL BYTE

;Длина области ввода

 

MAXLEN

DB

9

 

ACTLEN

DB

?

 

 

DATEFLD

DB

9 DUP(' ')

 

 

 

DB

'$'

;Запрос функции

 

 

MOV

AH,0AH

 

 

LEA

DX,DATEPAR

; ввода

 

 

INT

21H

 

9.1. a) 1000 0001; в)

0111 1000.

 

9.2. a)

MOV

АН,00

;Запрос функции установки режима

 

MOV

AL,02

; 80х25 BW

в)

INT

10Н

;3апрос прокрутки на 10 строк

MOV

AН,060AН

 

MOV

BH,07

;Нормальный видеоатрибут

 

MOV

CX,0000

;Полный экран

 

MOV

DX,184FH

 

 

INT

10Н

 

9.3. а) 48; в) 47.

9.5. Использовать команду INT 10Н для ввода и проверить скэнкод.

10.1. Восемь цветов для фона и 16 цветов для текста.

10.2.а) 1011 0101; в) 1000 1100.

10.3.Низкое разрешение: четыре бита на пиксел дает 16 цветов. Среднее разрешение: два бита на пиксел дает 4 цвета.

Высокое разрешение: один бит на пиксел дает 2 "цвета" (BW - черно-белое изображение).

10.4.

MOV

AH,09

;Функция вывода

 

MOV

AL,04

;Символ

 

MOV

BH,00

;Страница #0

 

MOV

BL,01011010В

;Светло-зеленый на сиреневом

 

MOV

CX,05

;Повторение 5 раз

 

INT

10Н

 

10.6. Сначала установить графический режим, а затем, используя

INT 10Н (AH=0BH),

установить цвет фона.

10.7. Сначала установить графический режим.

MOV

AH,0DH

;Прочитать точку

MOV

CX,13

 

;Столбец

MOV

DX,12

 

;Строка

INT

10Н

 

 

11.1. а)

JCXZ

lаbеl2

 

label1: MOV

AX,[SI]

 

 

MOV

[DI],AX

 

 

INC

DI

 

 

INC

DI

 

 

INC

SI

 

 

INC

SI

 

 

LOOP

label1

 

 

label2: ...

 

 

 

 

 

11.2. Установить флаг направления DF

для пересылки

справа

налево. Для

команды MOVSB начальная установка на адреса NAME1 + 9

олов

 

 

LEA

DI,DAYNAM

;Адрес пересылки

 

 

 

REP MOVSB

 

;Переслать 9

символов

 

14.3. a)

ITEMNO

DB

 

'06','10','14','21','24'

 

в)

ITPRICE

DW

 

9395,8225,9067,8580,1385

 

14.4. Возможная организация представлена в следующих процедурах:

Основной цикл

 

Вызов процедур

В1OREAD

Выдает на текст запроса и вводит номер элемента.

C10SRCH

Выполняет поиск в таблице и выдает сообщение об ошибке.

D10MOVE

Выделяет описание и цену из таблицы.

E10CONV

Преобразует количество из кода ASCII в двоичное представление.

F10CALC

Вычисляет стоимость (количество х цена).

G10CONV

Преобр. стоимость из двоичн. представления в симв. (код ASCII).

K10DISP

Выводит описание и стоимость на экран.

14.5.

SORTAB

DB

5 DUP(9 DUP(?))

LEA

SI,ITDESC

;Инициализация

LEA

01,SORTAB

;

адреса таблицы

MOV

CX,45

;

и числа символов

CLD

 

;Направление слева направо

REP MOVSB

 

;Переслать таблицу

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]