английский словарь, 1с бухгалтерия, прокси сервера, немецко русский словарь, архиватор rar, .

flashinfo.narod.ru

 
 На сайте
   Главная
   Links

 Разделы
антивирус панда
panda activescan
отказоустойчивые вычислительные системы
norton
winrar
сетевой экран
антивирусные программы
текстовые редакторы
nod32
1с бухгалтерия
avast 4.7
 Главная  Links
{img1} английский словарь
В этом случае можно легко отслежи- вать поток управления в программе. В любом месте модуля должна иметься возможнось увидеть точку входа в модуль и сказать: "Я знаю значения регистров X,Y и Z в этой точке, потому что они ука- зываются как...", и затем проследить функционирование модуля без тревоги об искажении программы.
panda
{img2} антивирус панда
Один вход обеспечивает возврат потока управления в точку вызова при вызове модуля. По этой при- чине, модульные программы почти всегда выполняются как структуры CALL-RET. Использование нескольких предложений RET в модуле не должно нарушать правило одного входа, поскольку все инструкции RET возв- ращают управление в одну и ту же точку.
symantec
{img3} программы архиваторы
Точно также, переход к общему RET в конце модуля, не изменяет структуру модуля, а добав- ляет лишь коды в модуль и увеличивает его сложность. С другой стороны, вход или выход из модуля не по этому правилу перечерки- вает наибольшие преимущества модульного программирования: яс- ность, удобство сопровождения. Имеется исключение из правила входа в модуль.
Навигационные системы

антивирус

английский словарь, 1с бухгалтерия, прокси сервера, немецко русский словарь, архиватор rar, .
 

win rar

Несмотря на самые лучшие намерения большинства программистов, их программы могут иметь настолько запутанные связи и громоздкие скопления кодов, что час- то для их полного понимания требуется почти божественная проница- тельность. Это утверждение ни в коем случае не рассматривается как неуважение к специалистам в области программирования. Труд- ности установления структуры являются результатом необходимости одновременно иметь дело с большим количеством деталей. Имеются два направления в решении этой проблемы. Первое направление сос- тоит в упрощении используемого программного кода, замене сложной инструкции последовательностью с более понятными структурами. Технические приемы, разработанные в главе 1, следуя по данному пути, уменьшают количество деталей, возникающих при программиро- вании на языке Ассемблер. Однако, программисту все еще трудно справляться с большим количеством функциональных деталей. Второе направление состоит в применении технических приемов, порожденных языками высокого уровня десятилетия тому назад. Кон- цепции декомпозиции и модульного проектирования оказались приме- нимыми и к программированию на языке Ассемблер. Эти концепции, упоминаемые под общим заголовком "структурное проектирование", позволяют программисту сегментировать общую программную задачу таким образом, чтобы одновременно обходиться только охватываемым контролем количеством деталей. Это и будет темой нашего последую- щего обсуждения. - 2-2 - Опции проектирования Модульное проектирование и декомпозиция относятся к процессу расчленения больших проблем на более узкие, более управляемые подпроблемы. Первым шагом проектирования является решение, в ка- ком месте должна быть граница между этими подпроблемами. Для получения максимальных преимуществ от использования мо- дульного программирования каждая подпроблема или модуль должны иметь один вход и один выход.


1с бухгалтерия


 
 

CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Hosted by uCoz
; ждать завершения восстановления popf ; снова разрешить прерывания? ; ; Теперь мы имеем копию состояния NPX, декодируем его и ; выведем пользователю на терминал. ; ; Представление состоит из следующих пунктов ; ; ===================== NPX DUMP ========================== ; Infinity: Affine Round.......near Precision: 64 ; Inst Addr: x:xxxx Oper Addr: x:xxxx Opcode: Dxxx ; ; INT PRE UND OVR ZER DEN IIP C3 C2 C1 C0 ; Enable: x x x x x x x x x x x ; Signal: x x x x x x x <-- "x" означает неза- ; маскированное ; или сигнал ; exponent significand ; ST(x) + xxxx xxxx xxxx xxxx xxxx #0 tag ; . ; . ; . ; --------------------------------------------------------- ; ; Управление бесконечностью, округлением и точностью: @DisStr LINE1 ; начать отображение mov al,byte ptr BASE.cw87+1 ; получить слово управления and al,mask infc ; управление бесконечностью mov cl,infc shr al,cl ; условие # mul inf_siz ; смещение условия add ax,offset inf_cnd ; адрес условия mov dx,ax @Display ; @DisStr rnd_lab mov al,byte ptr BASE.cw87+1 ; получить слово управления and al,mask rndc ; управление округлением mov cl,rncd shr al,cl ; управление # mul rnd_siz ; смещение условия add ax,offset rnd_cnd ; адрес условия mov dx,ax @Display ; @DisStr pre_lab mov al,byte ptr BASE.cw87+1 ; получить слово управления and al,mask prec ; управление точностью mov cl,prec - 10-27 - shr al,cl ; управление # mul pre_siz ; смещение условия add ax,offset pre_cnd ; адрес условия mov dx,ax @Display ; ; Указатели команды и операнда, а также код операции @DisStr LINE2 ; следующая строка mov ax,BASE.ips87 ; указатель команды and ax,mask ipseg ; сегмент mov cl,ipseg shr ax,cl ; цифра mov ch,1 ; отобразить 1 call bin2hex @DisChr ':' mov ax,BASE.ipo87 ; указатель команды mov ch,4 ; смещение call bin2hex ; @DisStr opadr ; указатель операнда mov ax,BASE.ops87 ; указатель команды and ax,mask opseg ; сегмент mov cl,opseg shr ax,cl ; цифра mov ch,1 ; отобразить 1 call bin2hex @DisChr ':' mov ax,BASE.opo87 ; указатель операнда mov ch,4 ; смещение call bin2hex ; @DisStr ocode ; код операции mov ax,BASE.ips87 and ax,mask opcode or ax,0800h ; добавить бит кода операции mov ch,3 ; 3 цифры call bin2hex ; отобразить ; ; Флаги разрешения прерывания / особой ситуации: @DisStr LINE3 ; следующая строка mov al,byte ptr BASE.sw87+1 ; флаг разрешения ситуации call exception_flags ; показать состояние ; ; Коды условий: @DisStr space10 mov ah,byte ptr BASE.sw87+1 ; коды условий push ax ; (сохранить коды) mov al,30h ; (ASCII "0") and ah,mask c3 ; C3 sub ah,mask c3 ; 0 -> CY, 1 -> NC cmc ; 0 -> NC, 1 -> CY adc al,0 ; 0 -> "0", 1 -> "1" @DisChr al ; отобразить pop ax ; (сохранить коды) ; mov ch,c2 + 1 ; # отображаемых кодов next_cc: - 10-28 - @DisStr SPACE2 ; mov al,30h ; (ASCII "0") and ah,mask c2 ; C2 sub ah,mask c2 ; 0 -> CY, 1 -> NC cmc ; 0 -> NC, 1 -> CY adc al,0 ; 0 -> "0", 1 -> "1" @DisChr al ; отобразить ; shl ah,1 ; следующий код dec ch ; уменьшать на 1 ... jnz next_cc ; ... пока все не ; ... будет сделано ; ; Флаги состояния прерывания / особой ситуации: @DisStr LINE6 mov al,byte ptr BASE.sw87 ; флаг сигнала ситуации call exception_flags ; показать состояние ; ; Отобразить регистр данных: @DisStr LINE6 mov dh,8 ; # отображаемого регистра mov si,0 ; начать с регистра #0 ; register_display: @DisStr LINE8 ; регистры состояния push dx ; сохранить счет mov al,8 ; вычислить регистр # sub al,dh add al,30h ; перевести в ASCII @DisChr al ; и отобразить pop dx ; ; Знак регистра данных: @DisStr paren ; следующим идет знак mov ax,word ptr BASE.reg87[si].exp87 test ax,mask sign ; что это? jnz sign_minus @DisStr plus jmp show_exponent sign_minus: @DisStr minus ; ; Экспоненциальная часть регистра данных: show_exponent: and ax,mask exp ; получить экспоненту xor cx,cx ; четыре символа call bin2hex ; и отобразить @DisStr space3 ; mov di,si ; основание регистра add di,offset exp87 ; положение мантиссы mov dl,4 ; 4 слова на регистр ; ; Отобразить значащую часть регистра данных: show_significand: sub di,2 ; указать начало слова - 10-29 - mov ax,word ptr Base.reg87[di] call bin2hex ; и отобразить @DisStr SPACE1 dec dl jnz show_significand ; ; Правильный номер регистра: @DisStr truenum mov al,byte ptr BASE.sw87+1 ; получит указатель стека and al,mask stp mov cl,stp shr al,cl ; иметь указатель стека ; mov cl,8 ; преобразовать счетчик в sub cl,dh ; ... значение от 0 до 7 add al,cl ; # текущего регистра ; push ax ; сохранить номер регистра add al,30h ; преобразовать в ASCII @DisChr al ; и отобразить ; @DisStr SPACE2 ; переход в поле TAG ; ; Состояние слова признака: mov ax,BASE.tw87 ; получить слово признака pop cx ; получить номер регистра ; ... в CL shl cl,1 ; многократно по 2 shr ax,cl ; получить соответствующее ; ... слово признака and ax,mask tag ; push dx mul tag_siz ; смещение условия add ax,offset tag_cnd ; адрес условия mov dx,ax @Display ; показать состояние признака pop dx ; ; Для данного регистра все выполнено! add si,size fltreg ; следующий регистр dec dh ; меньше на 1 jz finished jmp register_display ; пока все не выполнено ; ; Все выполнено для всех регистров! ; finished: @disStr LINE9 ; все сделано! ; ; Восстановить главный центральный процессор в первоначальное ; состояние. Начать с сохраненных регистров. pop si ; восстановить регистры... ; ... вызывающего оператора pop di pop dx pop cx - 10-30 - pop bx pop ax mov sp,bp ; восстановить стек pop ds ; восстановить сегмент данных popf ; восстановить флаги... ; ...

англо русский словарь


 
 
CNews: Новости | e-Business | Hi-Tech | Telecom List.ru - каталог ресурсов интернет Directrix џ­¤ҐЄб жЁвЁа®ў ­Ёп
Hosted by uCoz