Below C Level: A Student-Centered x86-64 Simulator

被引:0
|
作者
Fanning, Caitlin [1 ]
Garcia, Saturnino [1 ]
机构
[1] Univ San Diego, San Diego, CA 92110 USA
来源
PROCEEDINGS OF THE 2019 ACM CONFERENCE ON INNOVATION AND TECHNOLOGY IN COMPUTER SCIENCE EDUCATION (ITICSE '19) | 2019年
关键词
D O I
10.1145/3304221.3319762
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Learning an assembly language introduces students to important computing concepts such as the program stack and lays the conceptual groundwork for topics such as caching. While many instructors choose a RISC language such as MIPS for teaching assembly languages, the pervasiveness of x86-64 in both the desktop and server environments has compelled many instructors to adopt it in their courses. Unfortunately, x86-64 is a complex assembly language and as a result students often have difficulty understanding and visualizing the execution of an x86-64 program. This is especially the case for introductory level students, who struggle with the concepts of control flow; the difference between registers and memory; and memory organization (e.g. the stack). While students can use debuggers (e.g. GDB) to help them step through the execution of a program and examine the program state, these tools are challenging to learn and are therefore not an ideal fit for introductory level students. This paper introduces Below C Level (BCL), an x86-64 open source simulator aimed at helping novices overcome the barriers to learning this challenging language. BCL offers an intuitive interface and many features that allow students to easily simulate x86-64 code snippets or programs. During simulation BCL helps students decipher individual instructions and visualizes the program stack and register file, allowing students to quickly trace through their program and gain a deeper understanding of x86-64 code.
引用
收藏
页码:381 / 387
页数:7
相关论文
共 50 条
  • [1] Free simulator lets developers start on x86-64 development
    Myrvaagnes, R
    ELECTRONIC PRODUCTS MAGAZINE, 2000, 43 (06): : 29 - 29
  • [2] PTLsim:: A cycle accurate full system x86-64 microarchitectural simulator
    Yourst, Matt T.
    ISPASS 2007: IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, 2007, : 23 - +
  • [3] An Analysis of x86-64 Inline Assembly in C Programs
    Rigger, Manuel
    Marr, Stefan
    Kell, Stephen
    Leopoldseder, David
    Moessenboeck, Hanspeter
    ACM SIGPLAN NOTICES, 2018, 53 (03) : 84 - 99
  • [5] Sound C Code Decompilation for a Subset of x86-64 Binaries
    Verbeek, Freek
    Olivier, Pierre
    Ravindran, Binoy
    SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2020, 2020, 12310 : 247 - 264
  • [6] x86-64 Instruction Usage among C/C plus plus Applications
    Akshintala, Amogh
    Jain, Bhushan
    Tsai, Chia-Che
    Ferdman, Michael
    Porter, Donald E.
    SYSTOR '19: PROCEEDINGS OF THE 12TH ACM INTERNATIONAL SYSTEMS AND STORAGE CONFERENCE, 2019, : 68 - 79
  • [7] Instruction Punning: Lightweight Instrumentation for x86-64
    Chamith, Buddhika
    Svensson, Bo Joel
    Dalessandro, Luke
    Newton, Ryan R.
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 320 - 332
  • [8] Improvements on Hiding x86-64 Instructions by Interleaving
    Mahoney, William
    McDonald, J. Todd
    Grispos, George
    Mandal, Sayonnha
    PROCEEDINGS OF THE 18TH INTERNATIONAL CONFERENCE ON CYBER WARFARE AND SECURITY ICCWS, 2023, : 246 - 255
  • [9] LibLISA: Instruction Discovery and Analysis on x86-64
    Craaijo, Jos
    Verbeek, Freek
    Ravindran, Binoy
    Proceedings of the ACM on Programming Languages, 2024, 8 (OOPSLA2)
  • [10] Formally Verified Lifting of C-Compiled x86-64 Binaries
    Verbeek, Freek
    Bockenek, Joshua
    Fu, Zhoulai
    Ravindran, Binoy
    PROCEEDINGS OF THE 43RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '22), 2022, : 934 - 949