OT odcitanie v C

Jan Waclawek konfera na efton.sk
Čtvrtek Duben 24 14:22:41 CEST 2014


> a arimetika dvojkového doplòku :-)

Ano. Pre ine aritmetiky by to chcelo hlbsiu analyzu... ;-)


>Jak tak na to koukám, pro int = 16 bit by byl výsledek jiný, vlastnì jeden a ten samý výraz, takže by se vždy porovnávalo 
>se 4u;

Nie, v prvom pripade sa aj u int=int16_t vsetky operandy konvertuju na
uint32_t, takze sa porovnava s 0xffff0004u. Pre ilustraciu, prve
porovnanie ako vypadne z avr-gcc:
	lds r18,l
	lds r19,(l)+1
	lds r20,(l)+2
	lds r21,(l)+3
	lds r24,h
	lds r25,(h)+1
	ldi r26,lo8(0)
	ldi r27,hi8(0)
	sub r18,r24
	sbc r19,r25
	sbc r20,r26
	sbc r21,r27
	cpi r18,lo8(3)
	cpc r19,__zero_reg__
	cpc r20,__zero_reg__
	cpc r21,__zero_reg__
	brsh .L2
	lds r24,result
	ori r24,lo8(1)
	sts result,r24

Ten zvysok Vasej analyzy je taky ako moj, ale bez toho mojho nabubreleho
popisu ;-) 

wek




Další informace o konferenci Hw-list