2014-11-05 2 views
0

В классной категории, которую я принимаю, Мы используем подпрограмму, подобную приведенной ниже, в качестве временной задержки.Уточненная временная задержка в сборке

 push ax 
     push bx 
     mov ax, 1000 
B---> mov bx, FFFF 
A---> nop 
     dec bx 
     jnz (A) 
     dec ax 
     jnz (B) 
     pop bx 
     pop ax 
     ret 

Где (1000) и (FFFF) текучи, шестнадцатеричные, 4-значного значения.

Я надеялся, что кто-то может мне помочь точно что-то с этой программой. (EX: 10 секунд) Если возможно, пожалуйста, укажите уравнение для моего класса и я, чтобы использовать.

+0

Предоставление надежного способа измерения прошедшего времени - это работа операционной системы, а не кода сборки. –

ответ

0

Чтобы использовать этот код для синхронизации, вам необходимо знать продолжительность самого цикла; Есть несколько способов сделать это:

  1. Используйте Software Developer Manuals для просмотра хронометража каждой команды.

  2. Используйте rdtsc инструкции для измерения тактовых циклов

В любом случае, вам нужно разделить на тактовой частоте процессора, чтобы получить время в секундах.

 Смежные вопросы

  • Нет связанных вопросов^_^