Помощь - Поиск - Пользователи - Календарь
Полная версия: Аппаратное прерывание, прерывание таймера
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ассемблер
Megatron1989
У меня в программе с каждым прерывания таймера выводится один симвл (у меня выводится единица), ноу меня проблема возникла в том, что мне надо вывести по оному символу 160 раз, а у меня выводит бесконечное число раз.
ПОМОГИТЕ пожайлута сделать так, чтобы выводило 160 раз единицу

вот текст программы:
model small
.stack 100h
.data
old_time dd 0
d_ip dw 0
d_cs dw 0
mes db '1', '$',10
.code
new_time proc
mov ah,09h
lea dx,mes
int 21h
mov al,20h
out 20h,al
iret
new_time endp
begin:
mov ax,@data
mov ds,ax
mov ah,35h
mov al,08h
int 21h
mov d_ip,bx
mov d_cs,es
push ds
push cs
pop ds
lea dx,new_time
mov ax,2508h
int 21h
pop ds
l:mov ax,1
mov ax,2
mov ax,3
jmp l
mov ax,4c00h
int 21h
end begin
xds
model small
.stack 100h
.data
old_time dd 0
d_ip dw 0
d_cs dw 0

count dw 160

.code

new_time proc
push ax
cmp count,0
je exit_int
dec count
mov ah,2
mov dl,'1'
int 21h
exit_int:
mov al,20h
out 20h,al
pop ax
iret
new_time endp

begin:
mov ax,@data
mov ds,ax
mov ah,35h
mov al,08h
int 21h
mov d_ip,bx
mov d_cs,es
push ds
push cs
pop ds
lea dx,new_time
mov ax,2508h
int 21h
pop ds

idle:
hlt
cmp count,0
jne idle

mov ax,4c00h
int 21h
end begin

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.