Курсова задача
| Информационни технологии | 2009-12-04 | 36 сваляния |
Задание :
Даден е масив от 20 числа в BSD код без знак.Числата са четирицифрени. Да се провери масива за четни числа и числата да се сумират.
В code segment определя къде се записват адресите .В cs се записват адреса на кода в ds се записват адресите на данните,es е за допълнителни адреси. В програмата се използват 4 процедури, като в main_prog се извикват с инструкцията call, следните процедури tast1, sum, output. Посредством ax адреса на сегмента за данни и кода се записвa в ds и es. Прави се прекъсване 21h. В si се записва отместването на масива masiv, а в di mas_par. Чрез инструкция test се проверява последния бит на стринга на адрес ds:si. При положение, че бита не е 1 (т.е. числото е четно), чрез инструкция stosw съдържанието на ax се записва на адрес es:di. Съдържанието на регистрите si и di се коригира автоматично (т.е. увеличава се с 2). Тази процедира се повтаря толкова пъти колкото е стойността на регистъра cx (20 пъти колкото е броят на числата в масива masiv). Al е 8 битов регистър в него записваме от първото число на масива младшата част. След това събира al с променливата, в която се съхранява сумата. След това се прави корекция на резултата с инструкцията daa. Същото се прави и със старшата част на числото.,bp се увеличава с 2 за да се отиде на следващото число.
Следва кода на програмата:
code segment
assume cs:code, ds:code, es:code
main proc
mov ax,cs
mov ds,ax
mov es,ax
call test1
call sum
mov ah,9
mov dx,offset res_msg
int 21h
call output
Тагове от реферата: дресит, ирицрени, писва, сумира, провери, segment, определ, КУРСОВА











