
лабораторная работа / лабораторные работы по ASSAMBLER / Лаб №3 Вар №13
.docСаратовский Государственный Технический Университет
Балаковский Институт Техники Технологии и Управления
Кафедра: УИТ
Специальность: УИТ
Лабораторная работа №3
По СПО
Вариант №13
Выполнил: Федосова Л.И.
Студент гр. УИТ-33
Принял: Тудвасева Г.В.
Балаково2004г.
Цель работы: ознакомление и изучение цепочных команд, используемых для обработки символьных данных.
Задание: Найти в строке символ «s» и заменить его символом «&», а символ «L» на « ».
Решение.
lr_3.asm
Turbo Assembler Version 3.1 15/04/04 14:41:07 Page 1
1 0000 CODESG SEGMENT PARA 'CODE'
2 ASSUME CS:CODESG,DS:CODESG,SS:CODESG
3 ORG 100H
4 0100 EB 13 90 BEGIN: JMP abc
5 0103 53 68 61 6C 6F 6D 65+ TITL DB 'Fedosova Liliya'
6 65 76 61 20 4E 61 74+
7 61 73 68 61
8 0115 M1: abc PROC
9 0115 FC cld
10 0116 B9 0012 MOV CX,18
11 0119 BF 0103r LEA DI,TITL
12 011C B0 6D MOV AL,'s'
13 011E F2> AE REPNE SCASB
14 0120 75 06 JNE M2
15 0122 4F DEC DI
16 0123 B0 26 MOV AL,'&'
17 0125 AA STOSB
18 0126 E2 ED LOOP M1
19 0128 B9 0012 M2: MOV CX,18
20 012B BF 0103r LEA DI,TITL
21 012E B0 4E MOV AL,'L'
22 0130 F2> AE REPNE SCASB
23 0132 75 06 JNE M3
24 0134 4F DEC DI
25 0135 B0 20 MOV AL,' '
26 0137 AA STOSB
27 0138 E2 EE LOOP M2
28 013A B4 40 M3: MOV AH,40H
29 013C BB 0001 MOV BX,01
30 013F B9 0012 MOV CX,18
31 0142 BA 0103r LEA DX,TITL
32 0145 CD 21 INT 21H
33 0147 C3 RET
34 0148 abc endp
35 0148 CODESG ENDS
36 END BEGIN
Turbo Assembler Version 3.1 15/04/04 14:41:07 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "15/04/04"
??FILENAME Text "lr_3 "
??TIME Text "14:41:07"
??VERSION Number 030A
@CPU Text 0101H
@CURSEG Text CODESG
@FILENAME Text LR_3
@WORDSIZE Text 2
ABC Near CODESG:0115
BEGIN Near CODESG:0100
M1 Near CODESG:0115
M2 Near CODESG:0128
M3 Near CODESG:013A
TITL Byte CODESG:0103
Groups & Segments Bit Size Align Combine Class
CODESG 16 0148 Para none CODE
Turbo Assembler Version 3.1 24/04/04 11:05:49 Page 1
lr3_1.asm
1 0000 wert segment para 'code'
2 assume cs:wert; ds:wert
3 org 100h
4 0100 EB 13 90 ad: jmp abc
5 0103 53 68 61 6C 6F 6D 65+ titl db 'Fedosova Liliya'
6 65 76 61 20 4E 61 74+
7 61 73 68 61
8 0115 abc proc
9 0115 B9 0012 mov cx,18
10 0118 BB 0103r lea bx,titl
11 011B 8A 27 m1: mov ah,[bx]
12 011D 80 FC 6D cmp ah,'s'
13 0120 74 03 JE M2
14 0122 EB 05 90 JMP M5
15 0125 B4 26 M2: mov ah,'&'
16 0127 88 27 mov [bx],ah
17 0129 8A 27 M5: mov ah,[bx]
18 012B 80 FC 4E cmp ah,'L'
19 012E 74 03 JE M3
20 0130 EB 05 90 JMP M6
21 0133 B4 20 M3: mov ah,' '
22 0135 88 27 mov [bx],ah
23 0137 43 M6: inc bx
24 0138 E2 E1 loop m1
25 013A E8 0001 call w1
26 013D C3 ret
27 013E abc endp
28 013E w1 proc;
29 013E B4 40 mov ah,40h
30 0140 BB 0001 mov bx,01h
31 0143 B9 0012 mov cx,18
32 0146 BA 0103r lea dx,titl
33 0149 CD 21 int 21h
34 014B C3 ret
35 014C w1 endp
36 014C wert ends
37 end ad
Turbo Assembler Version 3.1 24/04/04 11:05:49 Page 2
Symbol Table
Symbol Name Type Value
??DATE Text "24/04/04"
??FILENAME Text "lr3_1 "
??TIME Text "11:05:49"
??VERSION Number 030A
@CPU Text 0101H
@CURSEG Text WERT
@FILENAME Text LR3_1
@WORDSIZE Text 2
ABC Near WERT:0115
AD Near WERT:0100
M1 Near WERT:011B
M2 Near WERT:0125
M3 Near WERT:0133
M5 Near WERT:0129
M6 Near WERT:0137
TITL Byte WERT:0103
W1 Near WERT:013E
Groups & Segments Bit Size Align Combine Class
WERT 16 014C Para none CODE