IAR вопросик

Programs, sources, embedded, demomaking, whatsoever related to subj :)

Postby DimkaM » 11 Sep 2012, 07:37

fk0 wrote: Там ни линкер файл правильно не формирует, ни c startup нифига не делает. Я имею ввиду, для загрузки в ОЗУ.

DimkaM wrote:а то тама ничё не будет(или мусор будет).
Не будет потомучто я покоцал нахер весь cstartup.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 11 Sep 2012, 07:39

fk0 wrote: В секции bss ничего не сжирает, потому, что она потом снизу под heap, а сверху под стек отдаётся.

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

Postby lvd » 11 Sep 2012, 10:04

DimkaM wrote:А хобета резиновая, туда можно по сорок раз данные дублить.

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

Postby deathsoft » 11 Sep 2012, 16:59

lvd wrote:Это пруф, что в чаре нельзя хранить числа?

Это пруф - что числа могут получаться какие угодно, и отрицательные и с расширением знака (особенно после преобразования сигнед чар 0x80 в сигнед инт (сюрпрайз сюрпрайз)).
User avatar
deathsoft
 
Posts: 4707
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 11 Sep 2012, 17:09

deathsoft wrote:Это пруф - что числа могут получаться какие угодно, и отрицательные и с расширением знака (особенно после преобразования сигнед чар 0x80 в сигнед инт (сюрпрайз сюрпрайз)).

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

Postby DimkaM » 13 Sep 2012, 05:25

deathsoft wrote:после преобразования сигнед чар 0x80 в сигнед инт
пиздец какойто, я незнаю как наебать ИАР, он всё константами шарашит. но преобразует правильно.
Code: Select all
     73                  signed char testchar=0x81;
     74                  signed int testint;
   \   00D7  CD0000            CALL    putget_ini
     75                  putget_ini();                                 
   \   00DA  2181FF            LD      HL,65409
   \   00DD  E5                PUSH    HL
   \   00DE  210000            LD      HL,?0010
   \   00E1  E5                PUSH    HL
   \   00E2  CD0000            CALL    printf
   \   00E5  F1                POP     AF
   \   00E6  F1                POP     AF
     76                  printf("testchar(0x81)= %d\r\n",testchar);
     77                  testchar--;
   \   00E7  2180FF            LD      HL,65408
   \   00EA  E5                PUSH    HL
   \   00EB  211500            LD      HL,?0011
   \   00EE  E5                PUSH    HL
   \   00EF  CD0000            CALL    printf
   \   00F2  F1                POP     AF
   \   00F3  F1                POP     AF
     78                  printf("testchar-- = %d\r\n",testchar);
   \   00F4  2180FF            LD      HL,65408
   \   00F7  E5                PUSH    HL
   \   00F8  212700            LD      HL,?0012
   \   00FB  E5                PUSH    HL
   \   00FC  CD0000            CALL    printf
   \   00FF  F1                POP     AF
   \   0100  F1                POP     AF
     79                  printf("(signed int)testchar= %d\r\n",testchar);
     80                  testint=(signed int) testchar;
   \   0101  2180FF            LD      HL,65408
   \   0104  E5                PUSH    HL
   \   0105  214200            LD      HL,?0013
   \   0108  E5                PUSH    HL
   \   0109  CD0000            CALL    printf
   \   010C  F1                POP     AF
   \   010D  F1                POP     AF
     81                  printf("(testint=(signed int) testchar) = %d\r\n",testint);
     82                  testint++; 
   \   010E  2181FF            LD      HL,65409
   \   0111  E5                PUSH    HL
   \   0112  216900            LD      HL,?0014
   \   0115  E5                PUSH    HL
   \   0116  CD0000            CALL    printf
   \   0119  F1                POP     AF
   \   011A  F1                POP     AF
     83                  printf("(testint++) = %d\r\n",testint);   
   \   011B  CD0000            CALL    getchar
     84                  getchar();
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 13 Sep 2012, 06:06

Вроде наебал, но всёравно преобразует правильно.
to lvd, за пруф сойдёт?! от Десофта пруфа не наблюдаю.

п.с. принтф инты принимает, поэто конвертация чара идет(причём не явная) перед вызовом.
Code: Select all
   \   00D9  DD36FA81          LD      (IX-6),129
     73                  signed char testchar=0x81;
   \   00DD  210200            LD      HL,2
   \   00E0  39                ADD     HL,SP
   \   00E1  E5                PUSH    HL
   \   00E2  FDE1              POP     IY
     74                  signed char* testcharptr=&(testchar);
     75                 
     76                  signed int testint;
   \   00E4  CD0000            CALL    putget_ini
     77                  putget_ini();                                 
   \   00E7  DD4EFA            LD      C,(IX-6)
   \   00EA  79                LD      A,C
   \   00EB  07                RLCA
   \   00EC  9F                SBC     A,A
   \   00ED  47                LD      B,A
   \   00EE  C5                PUSH    BC
   \   00EF  210000            LD      HL,?0010
   \   00F2  E5                PUSH    HL
   \   00F3  CD0000            CALL    printf
   \   00F6  F1                POP     AF
   \   00F7  F1                POP     AF
     78                  printf("testchar(0x81)= %d\r\n",testchar);
   \   00F8  DD35FA            DEC     (IX-6)
     79                  testchar--;
   \   00FB  DD4EFA            LD      C,(IX-6)
   \   00FE  79                LD      A,C
   \   00FF  07                RLCA
   \   0100  9F                SBC     A,A
   \   0101  47                LD      B,A
   \   0102  C5                PUSH    BC
   \   0103  211500            LD      HL,?0011
   \   0106  E5                PUSH    HL
   \   0107  CD0000            CALL    printf
   \   010A  F1                POP     AF
   \   010B  F1                POP     AF
     80                  printf("testchar-- = %d\r\n",testchar);
   \   010C  DD4EFA            LD      C,(IX-6)
   \   010F  79                LD      A,C
   \   0110  07                RLCA
   \   0111  9F                SBC     A,A
   \   0112  47                LD      B,A
   \   0113  C5                PUSH    BC
   \   0114  212700            LD      HL,?0012
   \   0117  E5                PUSH    HL
   \   0118  CD0000            CALL    printf
   \   011B  F1                POP     AF
   \   011C  F1                POP     AF
     81                  printf("(signed int)testchar= %d\r\n",testchar);
   \   011D  FD4E00            LD      C,(IY+0)
   \   0120  79                LD      A,C
   \   0121  07                RLCA
   \   0122  9F                SBC     A,A
   \   0123  47                LD      B,A
   \   0124  50                LD      D,B
   \   0125  59                LD      E,C
     82                  testint=(signed int) (*(testcharptr));
   \   0126  C5                PUSH    BC
   \   0127  214200            LD      HL,?0013
   \   012A  E5                PUSH    HL
   \   012B  CD0000            CALL    printf
   \   012E  F1                POP     AF
   \   012F  F1                POP     AF
     83                  printf("(testint=(signed int) testchar) = %d\r\n",testint);
   \   0130  13                INC     DE
     84                  testint++; 
   \   0131  D5                PUSH    DE
   \   0132  216900            LD      HL,?0014
   \   0135  E5                PUSH    HL
   \   0136  CD0000            CALL    printf
   \   0139  F1                POP     AF
   \   013A  F1                POP     AF
     85                  printf("(testint++) = %d\r\n",testint);   
   \   013B  CD0000            CALL    getchar
     86                  getchar();
sshot000000.png
sshot000000.png (4.87 KB) Viewed 5121 times
Last edited by DimkaM on 13 Sep 2012, 06:25, edited 1 time in total.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby CHRV » 13 Sep 2012, 06:22

Надо понимать что deathsoft как наши политики, дохуа говорит но ответа на вопросы не дает :) Если че это черта которая мне в нем прикалывает и радует.
DimkaM чето я тебе в мылу пишу а ответов нет, нуно одно дело решить. Напиши мне, видимо у меня мыл твой неактуальный.
Многое есть здесь: www.nedopc.com
User avatar
CHRV
Желесяка
 
Posts: 2136
Joined: 15 Apr 2007, 21:52
Group: Registered users

Postby jdigreze » 13 Sep 2012, 07:09

DimkaM wrote:sshot000000.png (4.87 Кб) Просмотров: 3
Прыкольный картинко :) 480х192? ой, т.е. 80х24? Давно мечтал на спектруме о таком. Правда сейчас уже не мечтаю.
Сколько меня не корми, волк всё равно в лес смотреть будет
jdigreze
 
Posts: 1478
Joined: 01 Aug 2008, 06:49
Location: Агбан
Group: Registered users

Postby DimkaM » 13 Sep 2012, 07:16

testint=(signed int) (*(testcharptr));
переделал в
testint=*(testcharptr);

Результат такойже, конвертит правильно

jdigreze wrote:Прыкольный картинко 480х192? ой, т.е. 80х24? Давно мечтал на спектруме о таком. Правда сейчас уже не мечтаю.
текстовый 80х25. На АТМе с 90х годов существует. На Еве тоже, тока добавлен ещё один режим однопаговый.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

PreviousNext

Return to Coding

Who is online

Users browsing this forum: No registered users and 1 guest