отчет asm 5 (Готовая лаба №5)
Описание файла
Файл "отчет asm 5" внутри архива находится в папке "Готовая лаба №5". Документ из архива "Готовая лаба №5", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "отчет asm 5"
Текст из документа "отчет asm 5"
Защищено: Гапанюк Ю. Е. "__"_____________2014 г. | Демонстрация: Гапанюк Ю. Е. "__"_____________2014 г. |
Отчет по лабораторной работе № 5 по курсу
Системное программирование
С доп Требованиями
Ввод строки и вывод в машинном формате
6
(количество листов)
Вариант № 9
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-42 | _____________________ |
(подпись) | |
Зайков С.А. | "__"_____________2014 г. |
Москва, МГТУ - 2014
_____________________________________________________________________________________________
СОДЕРЖАНИЕ
1. Цель и задание работы 3
2. Блок-схема алгоритма программы 3
3. Листинг кода 4
4. Результаты работы программы 4
1 Цель и задание работы
Разработать и отладить программу на языке Ассемблер для ввода строки символов с клавиатуры (последовательности символов) и вывода их в шестнадцатеричном представлении (через пробел). В данной программе необходимо предусмотреть запоминание строки символов в байтовом массиве.
2 Блок-схема алгоритма программы
3. Листинг кода
Turbo Assembler Version 3.1 04/04/14 08:30:52 Page 1
LAB5.ASM
1 0000 MYCODE SEGMENT 'CODE'
2 ASSUME CS:MYCODE,DS:MYCODE
3 0000 30 31 32 33 34 35 36+ hex_str DB '0123456789ABCDEF'
4 37 38 39 41 42 43 44+
5 45 46
6 0010 5A 61 79 6B 6F 76 20+ FIO DB "Zaykov S.A. IU5-42 Var_9$"
7 53 2E 41 2E 20 49 55+
8 35 2D 34 32 20 56 61+
9 72 5F 39 24
10 0029 54 6F 20 65 78 69 74+ Vyhod DB "To exit enter '*'$"
11 20 65 6E 74 65 72 20+
12 27 2A 27 24
13 003B 0100*(00) str db 256 dup(0)
*Warning* LAB5.ASM(6) Reserved word used as symbol: STR
14 013B START:
15 013B 0E PUSH CS
16 013C 1F POP DS
17 013D 1E PUSH DS
18 013E 07 POP ES
19 013F E8 0097 CALL ClrScr
20 0142 BA 0010r MOV DX,offset FIO
21 0145 B4 09 MOV AH,09
22 0147 CD 21 INT 21h
23 0149 E8 0099 CALL CLRF
24 014C Cycle1:
25 014C BF 0000 MOV DI,0
26 014F Cycle2:
27 014F @enterchar:
28 014F B4 08 MOV AH,08
29 0151 CD 21 INT 21h
30 0153 3C 21 cmp AL,21h
31 0155 72 F8 jb @enterchar
32 0157 88 85 003Br MOV str[di],AL
33 015B 3C 24 CMP AL, '$'
34 015D 75 03 JNE ENIF
35 015F EB 06 90 JMP ENDEF
36 0162 ENIF:
37 0162 8A D0 MOV DL,AL
38 0164 E8 006D CALL PutCh
39 0167 ENDEF:
40 0167 47 INC DI
41 0168 3C 24 CMP AL,'$'
42 016A 75 E3 JNE Cycle2
43 016C B2 3D MOV DL, '='
44 016E E8 0063 CALL PutCh
45 0171 BF 0000 MOV DI, 0
46 0174 Cycle3:
47 0174 8A 95 003Br MOV DL,str[di]
48 0178 52 PUSH DX
49 0179 80 FA 24 CMP DL, '$'
50 017C 75 03 JNE Hexing
51 017E EB 0A 90 JMP G1
52 0181 Hexing:
53 0181 E8 0032 CALL Hex
54 0184 47 INC DI
55 0185 B2 20 MOV DL, ' '
56 0187 E8 004A CALL PutCh
Turbo Assembler Version 3.1 04/04/14 08:30:52 Page 2
LAB5.ASM
57 018A G1:
58 018A 5A POP DX
59 018B 80 FA 24 CMP DL, '$'
60 018E 75 E4 JNE Cycle3
61 0190 E8 0052 CALL Clrf
62 0193 BA 0029r MOV DX, offset Vyhod
63 0196 B4 09 MOV AH,09
64 0198 CD 21 INT 21h
65 019A B4 08 MOV AH,08h
66 019C CD 21 INT 21h
67 019E 50 PUSH AX
68 019F E8 0043 CALL Clrf
69 01A2 58 POP AX
70 01A3 3C 2A CMP AL, '*'
71 01A5 75 A5 JNE Cycle1
72 01A7 E8 003B CALL Clrf
73 01AA E8 0033 CALL GetCh
74 01AD E8 0029 CALL ClrScr
75 01B0 B0 00 MOV AL,0
76 01B2 B4 4C MOV AH,4ch
77 01B4 CD 21 int 21h
78 01B6 Hex PROC
79 01B6 8B C2 MOV AX,DX
80 01B8 50 PUSH AX
81 01B9 D0 E8 shr AL,1
82 01BB D0 E8 shr AL,1
83 01BD D0 E8 shr AL,1
84 01BF D0 E8 shr AL,1
85 01C1 BB 0000r MOV BX, offset hex_str
86 01C4 D7 XLAT
87 01C5 8A D0 MOV DL,AL
88 01C7 E8 000A CALL PutCh
89 01CA 58 POP AX
90 01CB 24 0F and AL,00001111b
91 01CD D7 XLAT
92 01CE 8A D0 MOV DL,AL
93 01D0 E8 0001 CALL PutCh
94 01D3 C3 ret
95 01D4 Hex ENDP
96 01D4 PutCh Proc
97 01D4 B4 02 MOV AH,02h
98 01D6 CD 21 INT 21h
99 01D8 C3 ret
100 01D9 PutCh ENDP
101 01D9 ClrScr PROC
102 01D9 B4 00 MOV AH,00
103 01DB B0 03 MOV AL,03
104 01DD CD 10 INT 10h
105 01DF C3 ret
106 01E0 ClrScr ENDP
107 01E0 GetCh PROC
108 01E0 B4 01 MOV AH,01H
109 01E2 CD 21 INT 021H
110 01E4 C3 RET
111 01E5 GetCh ENDP
112 01E5 Clrf PROC
113 01E5 B4 02 MOV AH,02
Turbo Assembler Version 3.1 04/04/14 08:30:52 Page 3
LAB5.ASM
114 01E7 B2 0D MOV DL,13
115 01E9 CD 21 INT 21H
116 01EB B4 02 MOV AH,02
117 01ED B2 0A MOV DL,10
118 01EF CD 21 INT 21H
119 01F1 C3 RET
120 01F2 Clrf ENDP
121 01F2 MYCODE ENDS
122 END START
Turbo Assembler Version 3.1 04/04/14 08:30:52 Page 4
Symbol Table
Symbol Name Type Value
??DATE Text "04/04/14"
??FILENAME Text "LAB5 "
??TIME Text "08:30:52"
??VERSION Number 030A
@CPU Text 0101H
@CURSEG Text MYCODE
@ENTERCHAR Near MYCODE:014F
@FILENAME Text LAB5
@WORDSIZE Text 2
CLRF Near MYCODE:01E5
CLRSCR Near MYCODE:01D9
CYCLE1 Near MYCODE:014C
CYCLE2 Near MYCODE:014F
CYCLE3 Near MYCODE:0174
ENDEF Near MYCODE:0167
ENIF Near MYCODE:0162
FIO Byte MYCODE:0010
G1 Near MYCODE:018A
GETCH Near MYCODE:01E0
HEX Near MYCODE:01B6
HEXING Near MYCODE:0181
HEX_STR Byte MYCODE:0000
PUTCH Near MYCODE:01D4
START Near MYCODE:013B
STR Byte MYCODE:003B
VYHOD Byte MYCODE:0029
Groups & Segments Bit Size Align Combine Class
MYCODE 16 01F2 Para none CODE
Turbo Assembler Version 3.1 04/04/14 08:30:52 Page 5
Error Summary
*Warning* LAB5.ASM(6) Reserved word used as symbol: STR
4. Результаты работы программы