42Tokyoのスレです。
42 Tokyoとは
42 Tokyo(フォーティーツー)は、フランス発のエンジニア養成機関です。
「挑戦したいすべての人に質の高い教育を」を理念にシリコンバレーをはじめ、世界各国でエンジニア教育をおこなっています。
24時間利用可能な施設、学生同士で課題を克服するピアラーニング、学費完全無料など新しい仕組みで、社会で活躍するエンジニアを数多く輩出しています。
https://42tokyo.jp
より引用抜粋
現在応募受付中です。
42Tokyo【プログラミング学校】
1デフォルトの名無しさん
2019/11/18(月) 22:29:04.29ID:2edwNcfF287デフォルトの名無しさん
2022/08/24(水) 22:13:30.31ID:Mzz9ZFgx 東大の学生さん42Tokyoの課題のアセンブラの問題もやってるんだなあ。
https://github.com/YJI5212/42Tokyo/blob/main/libasm/ft_strdup.s
> _ft_strdup:
> push rdi
> call _ft_strlen
> mov rdi, rax
> call _malloc
> jc .error
> mov rdi, rax
> pop rsi
> call _ft_strcpy
> ret
> .error:
> mov rbx, rax
> call ___error
> mov [rax], rbx
> ret
mallocが失敗したのをフラグで判定するのわけわからんw
つかmallocするサイズも間違えてるしw
ft_strcpy呼んでる時のスタックのアライメントや.errorに分岐
した際にrbx破壊してるの見るとx86-64のABI分かってないなw
https://github.com/YJI5212/42Tokyo/blob/main/libasm/ft_strdup.s
> _ft_strdup:
> push rdi
> call _ft_strlen
> mov rdi, rax
> call _malloc
> jc .error
> mov rdi, rax
> pop rsi
> call _ft_strcpy
> ret
> .error:
> mov rbx, rax
> call ___error
> mov [rax], rbx
> ret
mallocが失敗したのをフラグで判定するのわけわからんw
つかmallocするサイズも間違えてるしw
ft_strcpy呼んでる時のスタックのアライメントや.errorに分岐
した際にrbx破壊してるの見るとx86-64のABI分かってないなw
288デフォルトの名無しさん
2022/08/24(水) 22:21:45.54ID:Mzz9ZFgx https://github.com/unstoppa61e/libasm/blob/master/libasm/ft_strdup.s
> %define ARG1 rdi
> %define ARG2 rsi
> %define ARG3 rdx
> %define LEN rax
>
> default rel
>
> section .text
> extern _ft_strlen
> extern _ft_strcpy
> extern _malloc
> global _ft_strdup
>
> _ft_strdup:
> push ARG1 ; var = str;
> call _ft_strlen ; LEN = ft_strlen(str);
>
> lea ARG1, [LEN + 1] ; ARG1 = LEN + 1;
> call _malloc ; LEN = malloc(ARG1);
>
> mov ARG1, rax ; ARG1 = retV (= mallocked str);
> pop ARG2 ; ARG2 = var;
> call _ft_strcpy ; retV = ft_strcpy(ARG1, ARG2);
>
> ret ; return (retV);
もう一人の人のはmallocのエラーチェックなしかよw
ft_strlenが返した値に+1してるのはさっきの人よかマシだが。
スタックのアライメント間違えてるのは同様だしやっぱABI分かって
ないのね。
よくこんなコード公開するなあ。これでレビューしてんのかよ。ザルすぎだろ。
> %define ARG1 rdi
> %define ARG2 rsi
> %define ARG3 rdx
> %define LEN rax
>
> default rel
>
> section .text
> extern _ft_strlen
> extern _ft_strcpy
> extern _malloc
> global _ft_strdup
>
> _ft_strdup:
> push ARG1 ; var = str;
> call _ft_strlen ; LEN = ft_strlen(str);
>
> lea ARG1, [LEN + 1] ; ARG1 = LEN + 1;
> call _malloc ; LEN = malloc(ARG1);
>
> mov ARG1, rax ; ARG1 = retV (= mallocked str);
> pop ARG2 ; ARG2 = var;
> call _ft_strcpy ; retV = ft_strcpy(ARG1, ARG2);
>
> ret ; return (retV);
もう一人の人のはmallocのエラーチェックなしかよw
ft_strlenが返した値に+1してるのはさっきの人よかマシだが。
スタックのアライメント間違えてるのは同様だしやっぱABI分かって
ないのね。
よくこんなコード公開するなあ。これでレビューしてんのかよ。ザルすぎだろ。
レスを投稿する
ニュース
- 【食】「シャウエッセンは焼くべからず」暗黙のルールを破り売上高過去最高…日本ハム社員たちが「夜味」にかけた情熱 [ぐれ★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」★2 [ぐれ★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★5 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★5 [蚤の市★]
- 神田沙也加さん元恋人で元俳優の前山剛久 六本木のメンズラウンジ勤務を報告「真叶(まなと)です。よろしく」 [muffin★]
- ムミィ🥺いる❓🏡
- 鈴木農水大臣「物価高対策でお米券1枚477円で販売します☺」 [931948549]
- ネトウヨ「早苗、かわいい、かわいいよぉ!!膣内(なか)に出すぞ早苗!(ドピュ」 [201193242]
- Pornhub「米国内で最もシコられたキャラはチュンリー、2B、そして…」 [347751896]
- ママカースト、地獄すぎるwwwwwwwwwwwwwwwwwwwww [977790669]
- トヨタのシエンタってそんなに人気なのか
