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 条
  • [31] Translating AArch64 Floating-Point Instruction Set to the x86-64 Platform
    You, Yi-Ping
    Lin, Tsung-Chun
    Yang, Wuu
    PROCEEDINGS OF THE 48TH INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOPS (ICPP 2019), 2019,
  • [32] Steamroller: An x86-64 Core Implemented in 28nm Bulk CMOS
    Gillespie, Kevin
    Fair, Harry R., III
    Henrion, Carson
    Jotwani, Ravi
    Kosonocky, Stephen
    Orefice, Robert S.
    Priore, Donald A.
    White, Jonathan
    Wilcox, Kathryn
    2014 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE DIGEST OF TECHNICAL PAPERS (ISSCC), 2014, 57 : 104 - +
  • [33] Supporting x86-64 Address Translation for 100s of GPU Lanes
    Power, Jason
    Hill, Mark D.
    Wood, David A.
    2014 20TH IEEE INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE (HPCA-20), 2014, : 568 - 578
  • [34] τCFI: Type-Assisted Control Flow Integrity for x86-64 Binaries
    Muntean, Paul
    Fischer, Matthias
    Tan, Gang
    Lin, Zhiqiang
    Grossklags, Jens
    Eckert, Claudia
    RESEARCH IN ATTACKS, INTRUSIONS, AND DEFENSES, RAID 2018, 2018, 11050 : 423 - 444
  • [35] Enhancing Randomization Entropy of x86-64 Code while Preserving Semantic Consistency
    Feng Xuewei
    Wang Dongxia
    Lin Zhechao
    Kuang Xiaohui
    Zhao Gang
    2020 IEEE 19TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2020), 2020, : 1 - 12
  • [36] Jaguar: A Next-Generation Low-Power x86-64 Core
    Singh, Teja
    Bell, Joshua
    Southard, Shane
    2013 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE DIGEST OF TECHNICAL PAPERS (ISSCC), 2013, 56 : 52 - 53
  • [37] 芯片就位之后——关于X86-64应用前景的讨论
    邢胜
    每周电脑报, 2005, (23) : 16 - 18
  • [38] 64位计算,革命乎?革新乎?——浅述AMD x86-64结构
    萧杰
    林果
    软件世界, 2000, (11) : 122 - 125
  • [39] BIRD: A Binary Intermediate Representation for Formally Verified Decompilation of X86-64 Binaries
    Engel, Daniel
    Verbeek, Freek
    Ravindran, Binoy
    TESTS AND PROOFS, TAP 2023, 2023, 14066 : 3 - 20
  • [40] An ECMA-55 Minimal BASIC Compiler for x86-64 Linux((R))
    Ham, John Gatewood
    COMPUTERS, 2014, 3 (03) : 69 - 116