Лабораторная работа №2 / Отчет(2 лаба)
.docФедеральное агентство по образованию
Уфимский государственный авиационный технический университет
Кафедра технической кибернетики
Отчет
По лабораторной работе №2
«Ассемблер: программирование ветвлений и циклов»
Выполнил: студент гр. РС-218
Иванов О.В.
Проверила: ассистент Семененко Д.В.
Уфа 2007
Цель работы: целью работы является закрепление знаний по командам условного и безусловного переходов и циклов на примере программ на языке ассемблера, а также приобретение навыков написания программ с циклами.
Задание: определить, сколько цифровых и нецифровых символов присутствует в заданной символьной строке.
Листинг программы
STACK SEGMENT PARA STACK 'STACK'
DB 64 DUP('STACK')
STACK ENDS
DSEG SEGMENT PARA PUBLIC 'DATA'
Mas db '1a34b678c0'
len_mas equ 10
DSEG ENDS
CSEG SEGMENT PARA PUBLIC 'CODE'
ASSUME CS:CSEG, DS:DSEG, SS:STACK
START PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
MOV CX,LEN_MAS
XOR AX,AX
XOR SI,SI
CYC1: JCXZ EXIT
CMP MAS[SI],48
JAE B1
JB M1
B1: CMP MAS[SI],57
JBE M2
JA M1
M1: INC BX ;Simvoli
JMP B2
M2: INC AX ;Cifri
B2: INC SI
DEC CX
JMP CYC1
EXIT: MOV AX, 4C00H
INT 21H
START ENDP
CSEG ENDS
END START
Тестирование
Символьная строка |
Ожидаемый результат |
Фактический результат |
'1a34b678c0' |
ax=0007 bx=0003 |
ax=0007 bx=0003 |
Вывод: в ходе лабораторной работы приобрели навыки написания программ с условными и безусловными переходами и циклами.
Блок-схема программы:
начало
инициация сегмента
данных, адреса строки,
счетчика для цикла
CYC1: счетчик да
элементов = 0?
нет
является символ да
нецифрой?
нет
увелечение счетчика
искомых элементов
является символ да
цифрой?
нет
увелечение счетчика
искомых элементов
уменьшение счетчика
элементов, переход к
следуещему символу
конец