0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

中古ノート、買ってみた。 その117

0
Posted at

概要

中古ノート買ってみた。
wsl1のubuntu18.04にnasm入れてみた。
練習問題、やってみた。

練習問題

湯婆婆を実装せよ。

実行結果


# gcc -o yuba yuba.s -no-pie

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は美だ。いいかい、美だよ。分かったら返事をするんだ、美!!

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は美だ。いいかい、美だよ。分かったら返事をするんだ、美!!

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は美だ。いいかい、美だよ。分かったら返事をするんだ、美!!

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は美だ。いいかい、美だよ。分かったら返事をするんだ、美!!

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は美だ。いいかい、美だよ。分かったら返事をするんだ、美!!

# ./yuba
契約書だよ。そこに名前を書きな。原美恵子
フン。原美恵子というのかい。贅沢な名だねぇ。今からお前の名前は原だ。いいかい、原だよ。分かったら返事をするんだ、原!!

サンプルコード

.intel_syntax noprefix
.global main
.text

main:
	push	rbp
	mov 	rbp, rsp
_start:
	mov 	r15, 0
	mov 	r14, 0
	mov 	r13, 0
_keiyaku:
	mov 	rdi, OFFSET FLAT:keiyaku
	mov 	rax, 0
	call 	printf
_get_random_one_word:
	mov 	rsi, OFFSET FLAT:buff
	mov 	rdi, OFFSET FLAT:fmt
	mov 	rax, 0
	call 	scanf
	lea		r15, buff[rip]
	lea		r14, name[rip]
	rdtsc
	mov 	rdx, 0
	mov 	rcx, 3
	div 	rcx
	cmp 	rdx, 2
	jz		_pass
	inc		r15
	inc		r15
_pass:
	mov		r13d, [r15]
	mov		[r14], r13d
_fun:
	mov 	rdi, OFFSET FLAT:fun
	mov 	rax, 0
	call 	printf
_namae:
	mov 	rdi, OFFSET FLAT:buff
	mov 	rdx, r14
	call 	printf
_zeitaku:
	mov 	rdi, OFFSET FLAT:zeitaku
	mov 	rax, 0
	call 	printf
_imakara:
	mov 	rdi, OFFSET FLAT:imakara
	mov 	rax, 0
	call 	printf
	call 	_print_new_name
_iikai:
	mov 	rdi, OFFSET FLAT:iikai
	mov 	rax, 0
	call 	printf
	call 	_print_new_name
_henji:
	mov 	rdi, OFFSET FLAT:henji
	mov 	rax, 0
	call 	printf
	call 	_print_new_name
	mov 	rdi, OFFSET FLAT:bikkuri
	mov 	rax, 0
	call 	printf
	jmp 	_end
_print_new_name:
	mov 	rdi, OFFSET FLAT:name
	mov 	rax, 0
	call 	printf
	ret
_end:
	mov 	eax, 0
	leave
	ret
.data
	fmt: 		.string "%s"
	keiyaku: 	.string "契約書だよ。そこに名前を書きな。"
	fun: 		.string "フン。"
	zeitaku: 	.string "というのかい。贅沢な名だねぇ。"
	imakara: 	.string "今からお前の名前は"
	iikai:  	.string "だ。いいかい、"
	henji:  	.string "だよ。分かったら返事をするんだ、"
	bikkuri: 	.string "!!"
.bss
	.comm		buff, 64
	.comm		name, 3





以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?