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 条
  • [21] Stratified Synthesis: Automatically Learning the x86-64 Instruction Set
    Heule, Stefan
    Schkufza, Eric
    Sharma, Rahul
    Aiken, Alex
    ACM SIGPLAN NOTICES, 2016, 51 (06) : 237 - 250
  • [22] Voltage Margins Identification on Commercial x86-64 Multicore Microprocessors
    Papadimitriou, George
    Kaliorakis, Manolis
    Chatzidimitriou, Athanasios
    Magdalinos, Charalampos
    Gizopoulos, Dimitris
    2017 IEEE 23RD INTERNATIONAL SYMPOSIUM ON ON-LINE TESTING AND ROBUST SYSTEM DESIGN (IOLTS), 2017, : 51 - 56
  • [23] Practical Software-Based Shadow Stacks on x86-64
    Zou, Changwei
    Gao, Yaoqing
    Xue, Jingling
    ACM TRANSACTIONS ON ARCHITECTURE AND CODE OPTIMIZATION, 2022, 19 (04)
  • [24] AMD备战64位——x86-64架构规范出台
    王洋
    每周电脑报, 2000, (32) : 16 - 16
  • [25] x86-64教学操作系统EOS的设计
    李蓓
    王禹
    肖明明
    郭京英
    李宗璞
    教育现代化, 2016, 3 (34) : 144 - 145
  • [26] Hyperchaining for LLVM-Based Binary Translators on the x86-64 Platform
    Lai, Jyun-Kai
    Yang, Wuu
    JOURNAL OF SIGNAL PROCESSING SYSTEMS FOR SIGNAL IMAGE AND VIDEO TECHNOLOGY, 2022, 94 (12): : 1569 - 1589
  • [27] Proof Pearl: A Verified Bignum Implementation in x86-64 Machine Code
    Myreen, Magnus O.
    Curello, Gregorio
    CERTIFIED PROGRAMS AND PROOFS, CPP 2013, 2013, 8307 : 66 - 81
  • [28] Hyperchaining for LLVM-Based Binary Translators on the x86-64 Platform
    Jyun-Kai Lai
    Wuu Yang
    Journal of Signal Processing Systems, 2022, 94 : 1569 - 1589
  • [29] Porting NetBSD to the AMD x86-64: a case study in OS portability
    van der Linden, F
    USENIX ASSOCIATION PROCEEDINGS OF BSDCON 2002, 2002, : 1 - 9
  • [30] Formally Verified Big Step Semantics out of x86-64 Binaries
    Roessle, Ian
    Verbeek, Freek
    Ravindran, Binoy
    PROCEEDINGS OF THE 8TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS (CPP' 19), 2019, : 181 - 195