ВУЗ:
Составители:
42
Идея работы программы состоит в том, что в соответствии с кодом (N)
регистра CX будет осуществляться N-кратный регистра AX. После операции
сдвига содержимое регистра АХ преобразуется к символьному виду и соответ-
ствующей процедурой выводится на экран монитора (см. пример 4.2).
Пример 4.2 - Написать программу моделирования дешифратора
К155ИД3 на языке Ассемблера. Текст программы:
title modell_id3
;----------------------------------------
stacksg segment para stack 'stack'
dw 32 dup (?)
stacksg ends
;----------------------------------------
datasg segment para 'data'
indat1 db '0000',10,13 ;входные данные
indat2 dw 0
outdat db '0000000000000000','$' ;выходные данные
datasg ends
;----------------------------------------
codesg segment para 'code'
begin proc far
assume cs:codesg,ds:datasg,ss:stacksg
push ds
sub ax,ax
push ax
mov ax,datasg ;настройка сегмента
mov ds,ax ;данных
call vvod ;ввод данных
;------------------------------------------
lea si,indat1-1
mov bx,04 ;преобразование
mov cx,01 ;символьных
a10: ;данных
mov al,[si+bx] ;(ASCII-код)
and ax,000fh ;в
mul cx ;двоичное
add indat2,ax ;число
shl cx,1
dec bx
jnz a10
mov cx,indat2 ;(сх)= число сдвигов
mov ax,0fffeh ;(ах)= 1111111111111110
rol ax,cl ;циклический сдвиг влево
; преобразование двоичного числа в символьное
;--------------------------------------------
Идея работы программы состоит в том, что в соответствии с кодом (N)
регистра CX будет осуществляться N-кратный регистра AX. После операции
сдвига содержимое регистра АХ преобразуется к символьному виду и соответ-
ствующей процедурой выводится на экран монитора (см. пример 4.2).
Пример 4.2 - Написать программу моделирования дешифратора
К155ИД3 на языке Ассемблера. Текст программы:
title modell_id3
;----------------------------------------
stacksg segment para stack 'stack'
dw 32 dup (?)
stacksg ends
;----------------------------------------
datasg segment para 'data'
indat1 db '0000',10,13 ;входные данные
indat2 dw 0
outdat db '0000000000000000','$' ;выходные данные
datasg ends
;----------------------------------------
codesg segment para 'code'
begin proc far
assume cs:codesg,ds:datasg,ss:stacksg
push ds
sub ax,ax
push ax
mov ax,datasg ;настройка сегмента
mov ds,ax ;данных
call vvod ;ввод данных
;------------------------------------------
lea si,indat1-1
mov bx,04 ;преобразование
mov cx,01 ;символьных
a10: ;данных
mov al,[si+bx] ;(ASCII-код)
and ax,000fh ;в
mul cx ;двоичное
add indat2,ax ;число
shl cx,1
dec bx
jnz a10
mov cx,indat2 ;(сх)= число сдвигов
mov ax,0fffeh ;(ах)= 1111111111111110
rol ax,cl ;циклический сдвиг влево
; преобразование двоичного числа в символьное
;--------------------------------------------
42
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »
