Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Rez
0 / 0 / 0
Регистрация: 23.06.2008
Сообщений: 3
1

Движущийся человек

01.06.2009, 23:31. Просмотров 938. Ответов 0
Метки нет (Все метки)

привет всем, сразу сознаюсь, что асм знаю очень плохо, поэтому прошу помочь разобраться
нужно замутить движущегося человечка, вроде все работает, но движется он, если постоянно нажимать клавишу, а нужно чтоб сразу двигался или по нажатию клавиши начинал движение
кроме как грубо зациклить, нечего в голову не приходит, но тогда по нажатию q уже не выйдешь и выходит уже не человечек а просто хрень мерцающая, в общем, если грубый вариант, как можно сделать паузу, только sleep() и что-нибудь такое библиотечное использовать нельзя, а если не грубый, что еще можно с этим сделать?
если у кого-нибудь есть какие-нибудь мысли или примеры, помогите плз


Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
code segment
        ASSUME CS:code, DS:DATA_SEG, ES:NOTHING, SS:STACK_SEG
start:
        MOV     AX,DATA_SEG
        MOV     DS,AX
        MOV     AX,STACK_SEG
        MOV     SS,AX
        MOV     SP, OFFSET TOP_OF_STACK
        
 
        MOV     AX,13h
        INT     10h
 
        MOV     AX,0A000h 
        MOV     ES,AX 
        CLD
 
        MOV     DI,320*12
 
        MOV     BH, 48
       
 
MOVE_MASK:
        MOV     AL, NOM_KADR
        CMP     AL,0
        JNZ     KADR2
        MOV     NOM_KADR, 1
        MOV     SI, OFFSET H1
        JMP     SHOW_KADR
 
        
KADR2:
        MOV     NOM_KADR, 0
        MOV     SI, OFFSET H2
 
SHOW_KADR:
        PUSH    DI        
        MOV     BL,13    
 
 
DRAW_H:
        MOV     CX,12     
        REP     MOVSB
        ADD     DI,320-12 
        DEC     BL
        JNZ     DRAW_H
        POP     DI        
        INC     DI        
 
READ_KEY:
      ;MOV     AH,08h
     ; INT     21h
       ; cmp     al,0 ; Проверка на расш.коды
       ; JZ      READ_KEY
        mov CX,51000
        mov DX,51000
        mov AH,86H
         INT 15H
           
        cmp     al, 'q'
        JMP     MOVE_MASK
       MOV     AX,3
        INT     10h                 
 
       MOV     AH,4Ch
       INT     21h
 
 
 
DATA_SEG SEGMENT
 
H1    DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,9,9,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,0,0,9,9,9,9,9,9,0,0,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,9,9,0,0,9,9,0,0,9,9,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,0,0,9,9,0,0,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
      DB 0,0,0,9,9,0,0,9,9,0,0,0
     
H2     DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,0,0,9,9,9,9,9,9,0,0,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,9,9,0,0,9,9,0,0,9,9,0
       DB 0,0,0,0,0,9,9,0,0,0,0,0
       DB 0,0,0,0,0,9,9,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,0,0,9,9,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,9,9,0,0,0
       DB 0,9,9,0,0,0,0,0,0,0,0,0
NOM_KADR DB 0
DATA_SEG ENDS
 
STACK_SEG SEGMENT
        DB 64 DUP('STACK')
TOP_OF_STACK DW ?
STACK_SEG ENDS
 
code ends
end start
end
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2009, 23:31
Ответы с готовыми решениями:

движущийся курсор
Нужно написать крутящийся и движущийся курсор: /|\-/|\-..... С чего начать? (Win32) Есть ли...

Квадрат, движущийся по нажатию кнопок
Помогите!!! Квадрат(должен быть разукрашенным) движущая по нажатью кнопок(вверх, вниз, направо,...

Может кто нарисовать квадрат движущийся по горизонтале!
Привет, ребята) помогите!! не особо разбираюсь в ассемблере, а лабораторную сдать нужно((

колькими способами из группы в 25 человек можно сформировать 5 подгрупп по 5 человек?
Сколькими способами из группы в 25 человек можно сформировать 5 подгрупп по 5 человек?

Определить количество человек, рост которых больше среднего роста всех 25 человек
Рост 25 человек задан одномерным массивом. определить количество человек рост которых больше...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2009, 23:31

Человек стартует с нулевого километра со скоростью V. На каком километре будет человек через T часов
Длинна дорого равна 109 км. Человек стартует с нулевого километра со скоростью V. На каком...

В круге стоят N человек. Они пронумерованы от 1 до N. Поочередно из круга начинает выходить каждый 3-й человек
В круге стоят N человек. Они пронумерованы от 1 до N. Поочерёдно из круга начинает выходить каждый...

Для N человек с заданной датой рождения вывести сообщение, в какой декаде родился человек
Создайте структуру Дата с элементами День, Месяц, Год. Для N человек с заданной датой рождения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru