KATUBLO | エンジニアの日常BLOG

プログラミング、数学、旅行などを中心に役立つ情報をお届け

2019年01月27日

【アセンブリ言語】配列と連結リストの違いを簡単に解説

こんにちは。KATUOです。今回はアセンブリ言語における配列と連結リストの違いについて解説します。

 

アセンブリ言語における配列とは?

番号が定められた箱に値を入れていく。これらの箱の集合を配列と呼ぶ。

 

適当なコードで書くと

 

Xという配列がある。

 

X[0] = 1

X[1] = 2

X[2] = 3

X[3] = 4

X[4] = 5

 

の値が入っている。

 

 

アセンブラ言語における配列のメリット

指定のデータにアクセスするときの時間が一定

 

アセンブラ言語における配列のデメリット

値を挿入するとき、挿入された値以降がずれてしまう。

これは何なのかというと

 

 

X[0] = 1

X[1] = 2

X[2] = 3

X[3] = 100  ←挿入

X[4] = 4

X[5] = 5

 

もとの[3]に入っていた値が[4]に移動するように挿入された値以降が1つずれる。

 

アセンブリ言語における連結リストとは?

値(データ)の入った箱を電車のように繋げていくような形でデータを保管する。

 

イメージ的にはこんな感じ。

 

[1]→[2]→[3]→[4]→[5]

 

 

アセンブラ言語における連結リストのメリット

値を挿入するとき、その前後のみを繋なぎ直せば、値を挿入できる点。

 

説明すると

 

[1]→[2]→[3]→{[100]}→[4]→[5]

 

100を上の場所に挿入したい。

 

[3]の向かう先を[100]

[100]の向かう先を[100]

にすれば挿入ができる。

 

[1]→[2]→[3]→[100]→[4]→[5]

 

 

アセンブラ言語における連結リストのデメリット

任意の番号の値にはアクセスしづらい。

(少し詳しく説明するとポインターと呼ばれるものを辿ってアクセスを行うためアクセスが少々厄介)

 

 

アセンブラ言語を学ぶ上でおすすめの参考書

 

64ビットアセンブラ入門―64ビットCPUの基本構造もやさしく解説

 

↑良さげな参考書。実際、大学の授業やネットで調べるよりも参考書でじっくり勉強した方が身につくと思います。将来有望な情報工学を学ぶ学生は基礎力を学生のうちに身に付けるのが大切であると思うので、リンク先の参考書を一目通して置くと良いかもしれません。

 

 

最後まで読んで頂き、ありがとうございました。
SNS等でのシェアが頂ければ幸いです!

プロフィール

@KATUO

現在都内私立大学に通う大学4年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習を開始。現在は「ToC向け大規模サービスを運営するメガベンチャー」と「AIスタートアップ」でインターンで修行中。2020年4月からwebエンジニアとして社会人生活スタート。

広告

特集記事