отчет asm 4 (Готовая лаба №4)
Описание файла
Файл "отчет asm 4" внутри архива находится в папке "Готовая лаба №4". Документ из архива "Готовая лаба №4", который расположен в категории "". Всё это находится в предмете "системное программирование" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "системное программирование" в общих файлах.
Онлайн просмотр документа "отчет asm 4"
Текст из документа "отчет asm 4"
Защищено: Гапанюк Ю. Е. "__"_____________2014 г. | Демонстрация: Гапанюк Ю. Е. "__"_____________2014 г. |
Отчет по лабораторной работе № 4 по курсу
Системное программирование
Циклы и перевод символов
4
(количество листов)
Вариант № 9
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-42 | _____________________ |
(подпись) | |
Зайков С.А. | "__"_____________2014 г. |
Москва, МГТУ - 2014
_____________________________________________________________________________________________
СОДЕРЖАНИЕ
1. Цель и задание работы 3
2. Блок-схема алгоритма программы 3
3. Листинг кода 4
4. Результаты работы программы 4
1 Цель и задание работы
Разработать и отладить программу на языке Ассемблер для вывода на экран первых 20 последовательных строчных букв русского алфавита (начиная с символа «а»). Символы должны быть представлены в символьном и шестнадцатеричном представлении (через черточку). Каждая буква выводится в виде символьного представления и 2-х разрядного шестнадцатеричного числа на отдельной строке.
2 Блок-схема алгоритма программы
3 Листинг кода
Turbo Assembler Version 3.1 04/04/14 08:32:00 Page 1
LAB4.ASM
1 0000 MYDATA SEGMENT 'DATA'
2 0000 30 31 32 33 34 35 36+ HEX_STRING DB '0123456789ABCDEF'
3 37 38 39 41 42 43 44+
4 45 46
5 0010 MYDATA ENDS
6
7 0000 MYCODE SEGMENT 'CODE'
8 ASSUME CS:MYCODE, DS:MYCODE
9 0000 START:
10 0000 B8 0000s MOV AX, MYDATA
11 0003 8E D8 MOV DS, AX
12 0005 B9 000A MOV CX, 10
13 0008 PL:
14 0008 B2 0A MOV DL, 10
15 000A 8A F1 MOV DH, CL
16 000C 2A D6 SUB DL, DH
17 000E E8 0025 CALL PRINT
18 0011 E8 000B CALL CLRF
19 0014 E2 F2 LOOP PL
20 0016 E8 0018 CALL GETCH
21 0019 B0 00 MOV AL,0
22 001B B4 4C MOV AH,4CH
23 001D CD 21 INT 21H
24
25 001F CLRF PROC
26 001F B4 02 MOV AH,02
27 0021 B2 0D MOV DL,13
28 0023 CD 21 INT 21H
29 0025 B4 02 MOV AH,02
30 0027 B2 0A MOV DL,10
31 0029 CD 21 INT 21H
32 002B C3 RET
33 002C CLRF ENDP;
34
35
36 002C PUTCH PROC
37 002C B4 02 MOV AH,02H
38 002E CD 21 INT 21H
39 0030 C3 RET
40 0031 PUTCH ENDP
41
42 0031 GETCH PROC
43 0031 B4 01 MOV AH,01H
44 0033 CD 21 INT 21H
45 0035 C3 RET
46 0036 GETCH ENDP
47
48 0036 PRINT PROC
49 0036 E8 0018 CALL RUS
50 0039 E8 FFF0 CALL PUTCH
51 003C 8A F2 MOV DH, DL
52 003E B2 20 MOV DL, ' '
53 0040 E8 FFE9 CALL PUTCH
54 0043 B2 2D MOV DL, '-'
55 0045 E8 FFE4 CALL PUTCH
56 0048 B2 20 MOV DL, ' '
57 004A E8 FFDF CALL PUTCH
Turbo Assembler Version 3.1 04/04/14 08:32:00 Page 2
LAB4.ASM
58 004D E8 000D CALL HEX
59 0050 C3 RET
60 0051 PRINT ENDP
61
62
63 0051 RUS PROC
64 0051 80 C2 A0 ADD DL, 0A0H
65 0054 80 FA AF CMP DL, 175
66 0057 76 03 JBE EXT
67 0059 80 C2 30 ADD DL, 30H
68 005C EXT:
69 005C C3 RET
70 005D RUS ENDP
71
72 005D HEX PROC
73 005D BB 0000r LEA BX,HEX_STRING
74 0060 8A C6 MOV AL,DH
75 0062 D0 E8 SHR AL,1
76 0064 D0 E8 SHR AL,1
77 0066 D0 E8 SHR AL,1
78 0068 D0 E8 SHR AL,1
79 006A D7 XLAT
80 006B 8A D0 MOV DL,AL
81 006D E8 FFBC CALL PUTCH
82 0070 8A C6 MOV AL,DH
83 0072 24 0F AND AL, 00001111b
84 0074 D7 XLAT
85 0075 8A D0 MOV DL,AL
86 0077 E8 FFB2 CALL PUTCH
87 007A C3 RET
88 007B C3 RET
89 007C HEX ENDP;
90 007C MYCODE ENDS
91 END START
Turbo Assembler Version 3.1 04/04/14 08:32:00 Page 3
Symbol Table
Symbol Name Type Value
??DATE Text "04/04/14"
??FILENAME Text "LAB4 "
??TIME Text "08:32:00"
??VERSION Number 030A
@CPU Text 0101H
@CURSEG Text MYCODE
@FILENAME Text LAB4
@WORDSIZE Text 2
CLRF Near MYCODE:001F
EXT Near MYCODE:005C
GETCH Near MYCODE:0031
HEX Near MYCODE:005D
HEX_STRING Byte MYDATA:0000
PL Near MYCODE:0008
PRINT Near MYCODE:0036
PUTCH Near MYCODE:002C
RUS Near MYCODE:0051
START Near MYCODE:0000
Groups & Segments Bit Size Align Combine Class
MYCODE 16 007C Para none CODE
MYDATA 16 0010 Para none DATA