Question about assembly in set bit function for x86 architecture

Nicholas Krause xerofoify at gmail.com
Sun Apr 19 19:08:17 EDT 2015



On April 19, 2015 5:13:20 PM EDT, Anuz Pratap Singh Tomar <chambilkethakur at gmail.com> wrote:
>On Sun, Apr 19, 2015 at 9:51 PM, nick <xerofoify at gmail.com> wrote:
>
>> Greetings All,
>> I am wondering what the below code in the asm modifier does:
>> static inline void set_bit(int nr, void *addr)
>> {
>>          asm("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
>> }
>> This would be very helpful as I am new to  x86 assembly and don't
>> even known what register(s)/instruction(s) this touches and therefore
>this
>> is impossible for me to look up in the Intel Manuals. If someone
>either
>> tells me the registers/instructions this uses or explains the code
>that
>> would be very helpful.
>> Nick
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>
>get a book on i86 assembly and learn it.
The reason I am asking is that is assembly worth my time to learn for this part of the kernel, I understand  it's use in boot code but outside of that and cache memory lines in architecture directories there is very little, 95 percent of the kernel is written in C.  In addition due to this the only practical reason I  can thing of is for
debugging,  how useful is assembly for kernel debugging is my other question about this topic. 
Nick 
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.



More information about the Kernelnewbies mailing list