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

Тест скорости оперативной памяти.

07.04.2012, 12:30. Просмотров 1658. Ответов 0
Метки нет (Все метки)

Нужно было написать тест скорости записи данных в оперативную память и чтения данных из памяти, результат вывести на экран в десятичном коде.
Вот этот вариант не работает, задолбался ошибку искать. Также прошу помочь переписать процедуру перевода из 16 сс в 10 сс и вывод в виде макроса как OutStr

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
OutStr macro str ;макрос вывода строки
push dx
mov ah,09h
lea dx,str
int 21h
pop dx
endm 
 
 
.model small
.stack 256
.data
M1 DB ':$'
M3 DB 'Finish time in ms....$'
SEC  DB 0
SEC1 DB 0
g    DB 0
i    DW 0
x db 10242 dup(1)
long dw 10000
 
.code
start:
mov ax,@DATA ;инициализация
mov ds,ax
xor ax,ax
 
mov ah,2ch ; запуск таймера- узнаем текущие мс
int 21h
mov sec,dl
 
mov si, 0        
 
for_start: ;забиваю 10кб памяти нулями в цикле
mov dword [i],0
for_loop:
   mov x[si],'0'   
   inc si
   inc dword [i]
   cmp dword [i],10240
jnz for_loop
for_finish:
 
mov ah,2ch ;запуск второй раз системного таймера, получаю мс конца
int 21h
mov sec1,dl
 
 
xor ax,ax ; вывожу начальные мс
mov ax, offset sec
Call OutInt
OutStr M1
 
xor ax,ax ;вывожу конечные мс
mov ax, offset sec1
Call OutInt
OutStr M1
 
xor ax,ax ; вычитаю, получаю в мс сколько загружались 10кб
mov cl,sec
sub sec1,cl
mov ax, offset sec1
Call OutInt
OutStr M1
 
 
xor dx,dx
mov ax,@DATA           
mov ds,ax
 
xor cx,cx ;деление 10000кб на этот самый период
xor ax,ax
xor dx,dx
mov ax, long       
mov cx, offset sec1                         
div cx
 
Call OutInt
 
OutStr M1
xor ax,ax
 
OutInt proc ;это процедура перевода и вывода на экран из 16 сс в 10 сс
    xor     cx, cx
    mov     bx, 10 ; основание сс. 10 для десятеричной и т.п.
oi2:
    xor     dx,dx
    div     bx
    push    dx
    inc     cx
    test    ax, ax
    jnz     oi2
    mov     ah, 02h
oi3:
    pop     dx
    add     dl, '0'
    int     21h
    loop    oi3
    ret
OutInt endp 
OutStr M1
 
MOV     AH,08h
INT     21h
mov ax,4C00h
int 21h
END start
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2012, 12:30
Ответы с готовыми решениями:

Тест скорости оперативной памяти
Подскажите пожалуйста. Ошибки в строках 35/39/40. .model small .stack 256...

Тест оперативной памяти
Программа провисает после запуска. Компилирует нормально, без ошибок....

Тест оперативной памяти
Всем доброго времени суток! Возникла такая проблема: необходимо написать...

Адрес Bios в оперативной памяти
Хочется уточнить, по какому же адресу считывается в оперативную память bios. В...

Объем свободной оперативной памяти
Как через ассемблер (tasm) узнать объем свободной оперативной памяти? ...

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

Отобразить объем оперативной памяти
Нужно создать программу, которая отображает объем оперативной памяти....

Определение объема оперативной памяти.
Написал не хитрый код для определения объема оперативной памяти (В реальном...

Определение объема оперативной памяти
Всем привет! Пытаюсь определить объем оперативной памяти, но функции e820h и ...


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

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

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