|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
DprToLvt (PasToLvt). Пишу среду разработки (Эмулятор) для ПК-01 Львов
Пишу среду разработки (Эмулятор)… (http://sas.forumbb.ru/viewtopic.php?id=290)
Правильно ли реализованы следующие процедуры: Код:
Procedure SBBD; Begin if FlagC then wremb:=1 else wremb:=0; RgA:=RgA-RgD-wremb; end; Procedure SBI(b:byte); Begin if FlagC then wremb:=1 else wremb:=0; RgA:=RgA-b-wremb; end; Procedure ORI(b:byte); Begin RgA:=RgA or b; SetFlagAc(false);SetFlagC(false); end; Не знаю как реализовать Команду DAA на Дельфи, вот есть вырезки из СИ(которого я не знаю) и Асма, помогите транслировать в Дельфи конструкции или опишите пожалуйста каждую строку словами Код:
Procedure DAA; case 0x27: // 27 DAA tmp1 = 0; if ((RgF & f_C) || ( RgA > 0x99)) tmp1 |= 0x60; if ((RgF & f_A) || ((RgA & 0x0F) > 0x09)) tmp1 |= 0x06; tmp2 = RgA + tmp1; RgF = i8080_flags[tmp2 & 0xFF]; if ((tmp2 ^ RgA ^ tmp1) & 0x10) RgF |= f_A; if (tmp2 > 0xFF) RgF |= f_C; RgA = tmp2 & 0xFF; clock += 4; izmRgPC(+1); break; Вот асм реализация DAA Код:
; DAA C27: mov ax, [RgPSW] sahf daa lahf mov [RgPSW], ax ret Код:
tmp := src1 + src2; SetFlagAc(((src1 xor src2 xor tmp) and 16) <> 0); dst := tmp; Последний раз редактировалось Admin, 15.07.2012 в 18:33. |