HI-TECH Z80 C Compiler 7.80PL2

Postby DimkaM » 29 Nov 2016, 18:10

вот кстати
Code: Select all
#define  _FS_READONLY   1
...
   FRESULT res = FR_OK;
   if (sector != fs->winsect) {   /* Window offset changed? */
#if !_FS_READONLY
      res = sync_window(fs);      /* Write-back changes */
#endif
      if (res == FR_OK) {         /* Fill sector window with new data */
         if (disk_read(fs->drv, fs->win, sector, 1) != RES_OK) {


хитеч задетектил что тут "if (res == FR_OK)" всегда true и выкинул проверку

а вот иар не догадался
Code: Select all
   LD   B,IYL
   INC   B
   DEC   B
   JR   NZ,?0024
?0023:
; 765.           if (res == FR_OK) {
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1003
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby lvd » 29 Nov 2016, 20:16

inc ly:dec ly оно тоже не догадалось. по тактам столько же
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7143
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby DimkaM » 30 Nov 2016, 09:20

очень интересно, вход\выход в функцию кардинально различаются в иар vs хайтеч
сходство это передача параметров, первые два в de,bc остальное на стеке
также в обоих компилерах нужно сохранить неизменными индексные реги

есть незначительные различия в возврате результата
хайтеч(в зависимости от разрядности) L/HL/DEHL
иар A/HL/BCHL

также в хайтеч при выходе из функции нужно изъять со стека параметры переданные в функцию
как пример выход hitech из "DWORD clust2sect ( FATFS* fs,DWORD clst)"
результат в DEHL(в иаре было бы в BCHL)
Code: Select all
;DWORD clst на стеке ибо 32битный
   pop   iy
   pop   ix
   pop   bc
   pop   af
   pop   af
   push   bc
   ret   


Не могу сказать какой из вариантов лучше, есть плюсы и там и там
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1003
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Previous

Return to ZX Spectrum

Who is online

Users browsing this forum: No registered users and 1 guest

cron