Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторная работа №7.docx
Скачиваний:
3
Добавлен:
16.09.2019
Размер:
245.81 Кб
Скачать

12 0000 Cseg segment para public 'code'

13 Assume cs:cseg,ds:dseg,ss:stack

14 0000 Our_prog proc far

15 0000 1E push ds

16 0001 2B C0 sub ax,ax

17 0003 50 push ax

18 0004 B8 0000s mov ax,dseg

19 0007 8E D8 mov ds,ax

20 0009 C6 06 0005r 00 mov a,0

21 000E C6 06 0006r 00 mov b,0

22 0013 C6 06 0007r 00 mov c,0

23 0018 C6 06 0008r 00 mov d,0

24 001D C6 06 0009r 00 mov e,0

25 0022 A0 0000r mov al, source

26 0025 A2 0009r mov e,al

27 0028 A0 0001r mov al, source+1

28 002B A2 0008r mov d,al

29 002E A0 0002r mov al, source+2

30 0031 A2 0007r mov c,al

31 0034 A0 0003r mov al, source+3

32 0037 A2 0006r mov b,al

33 003A A0 0004r mov al, source+4

34 003D A2 0005r mov a,al

35 0040 CB ret

36 0041 our_prog endp

37 0041 cseg ends

38 end our_prog

Turbo Assembler Version 3.1 10/04/12 21:08:25 Page 3

Symbol Table

Symbol Name Type Value

??DATE Text "10/04/12"

??FILENAME Text "1 "

??TIME Text "21:08:25"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text CSEG

@FILENAME Text 1

@WORDSIZE Text 2

A Byte DSEG:0005

B Byte DSEG:0006

C Byte DSEG:0007

D Byte DSEG:0008

E Byte DSEG:0009

OUR_PROG Far CSEG:0000

SOURCE Byte DSEG:0000

Groups & Segments Bit Size Align Combine Class

CSEG 16 0041 Para Public CODE

DSEG 16 000A Para Public DATA

STACK 16 0140 Para Stack STACK

Рис.4 программа в окне отладчика

3.2) 5 двухбайтовых слов AA, BB, CC, DD, EE:

Рис.5 трансляция, создание листинга, компоновка и создание .exe файла

Листинг программы:

Turbo Assembler Version 3.1 10/04/12 21:47:49 Page 1

2.asm

1 0000 stack segment para stack 'stack'

2 0000 40*(73 74 61 63 6B) db 64 dup('stack')

3 0140 stack ends

4 0000 dseg segment para public 'data'

5 0000 000A 0014 001E 0028 + source dw 10,20,30,40,50

6 0032

7 000A 0001 a dw 01

8 000C 0001 b dw 01

9 000E 0001 c dw 01

10 0010 0001 d dw 01

11 0012 0001 e dw 01

12 0014 dseg ends

Turbo Assembler Version 3.1 10/04/12 21:47:49 Page 2

2.asm

13 0000 cseg segment para public 'code'

14 assume cs:cseg,ds:dseg,ss:stack

15 0000 our_prog proc far

16 0000 1E push ds

17 0001 2B C0 sub ax,ax

18 0003 50 push ax

19 0004 B8 0000s mov ax,dseg

20 0007 8E D8 mov ds,ax

21 0009 C7 06 000Ar 0000 mov a,0

22 000F C7 06 000Cr 0000 mov b,0

23 0015 C7 06 000Er 0000 mov c,0

24 001B C7 06 0010r 0000 mov d,0

25 0021 C7 06 0012r 0000 mov e,0

26 0027 A1 0000r mov ax,source

27 002A A3 0012r mov e,ax

28 002D A1 0001r mov ax,source+1

29 0030 A3 0010r mov d,ax

30 0033 A1 0002r mov ax,source+2

31 0036 A3 000Er mov c,ax

32 0039 A1 0003r mov ax,source+3

33 003C A3 000Cr mov b,ax

34 003F A1 0004r mov ax,source+4

35 0042 A3 000Ar mov a,ax

36 0045 CB ret

37 0046 our_prog endp

38 0046 cseg ends

39 end our_prog

Turbo Assembler Version 3.1 10/04/12 21:47:49 Page 3

Symbol Table

Symbol Name Type Value

??DATE Text "10/04/12"

??FILENAME Text "2 "

??TIME Text "21:47:49"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text CSEG

@FILENAME Text 2

@WORDSIZE Text 2

A Word DSEG:000A

B Word DSEG:000C

C Word DSEG:000E

D Word DSEG:0010

E Word DSEG:0012

OUR_PROG Far CSEG:0000

SOURCE Word DSEG:0000

Groups & Segments Bit Size Align Combine Class

CSEG 16 0046 Para Public CODE

DSEG 16 0014 Para Public DATA

STACK 16 0140 Para Stack STACK

Рис.6 программа в окне отладчика

3.3) 5 двойных слов AAAA, BBBB, CCCC, DDDD, EEEE;

В коде где определяется сегмент данных за место db вставляем dd – двойное слово.

Рис.7 трансляция, создание листинга, компоновка и создание .exe файла

Листинг программы:

Turbo Assembler Version 3.1 11/04/12 10:05:17 Page 1

3.asm

1 0000 stack segment para stack 'stack'

2 0000 40*(73 74 61 63 6B) db 64 dup('stack')

3 0140 stack ends

4 0000 dseg SEGMENT para public 'data'

5 0000 41414141 42424242 + source2 dd 41414141h,42424242h,43434343h,44444444h,45454545h

6 43434343 44444444 +

7 45454545

8 0014 dseg ends

Turbo Assembler Version 3.1 11/04/12 10:05:17 Page 2

3.asm

9 0000 cseg segment para public 'code'

10 assume cs:cseg,ds:dseg,ss:stack

11 0000 our_prog proc far

12 0000 1E push ds

13 0001 2B C0 sub ax,ax

14 0003 B8 0000s mov ax,dseg

15 0006 8E D8 mov ds,ax

16 0008 CB ret

17 0009 our_prog endp

18 0009 cseg ends

19 end our_prog

Turbo Assembler Version 3.1 11/04/12 10:05:17 Page 3

Symbol Table

Symbol Name Type Value

??DATE Text "11/04/12"

??FILENAME Text "3 "

??TIME Text "10:05:17"

??VERSION Number 030A

@CPU Text 0101H

@CURSEG Text CSEG

@FILENAME Text 3

@WORDSIZE Text 2

OUR_PROG Far CSEG:0000

SOURCE2 Dword DSEG:0000

Groups & Segments Bit Size Align Combine Class

CSEG 16 0009 Para Public CODE

DSEG 16 0014 Para Public DATA

STACK 16 0140 Para Stack STACK

Рис.8 программа в окне отладчика