0 Introduction
Assembly language is a low-level programming language that is closely related to computer hardware. As the Intel 80×86 processor and its compatible machines are mainstream processors for personal computers, assembly language teaching in domestic universities mainly focuses on Intel processors and their development tools. Due to national information security considerations, establishing an independent information industry has become a fundamental policy in China. The Kunpeng 920 processor is a 64-bit multi-core processor chip independently developed in China, compatible with the ARMv8-A architecture. It adopts a reduced instruction set architecture and is widely used in mobile computing, embedded systems, and cloud servers. Mastering ARM assembly language is significant for embedded system development and is a necessity for the development of the Information and Communication Technologies (ICT) industry. ARM assembly and Intel assembly are typical representatives of the reduced instruction set and complex instruction set, respectively, and they involve different processor architectures. Therefore, it is necessary to reasonably integrate the teaching content of both assembly languages in education.
1 Current Status of Assembly Language Teaching
Assembly language is a machine-related low-level programming language that can write efficient programs and directly control computer hardware. It is a bridge connecting computer software and hardware. Assembly language is an important foundational course for software engineering, computer science, and technology majors. Through learning assembly language, students can gain a deep understanding of the working principles of computer systems, enhance their high-level programming capabilities, and establish a computer system thinking.
Intel processors are currently the mainstream processors in personal computers, so assembly language teaching generally uses Intel processors and personal computers as the hardware platform, and 32-bit or 64-bit Windows operating systems as the software platform, implementing development using MASM assembly programs or Visual Studio as development tools. The teaching goal is mainly to enable students to understand the characteristics of low-level programming languages, become familiar with common instructions of Intel processors and MASM pseudo-instructions, master the basic methods of MASM assembly language program design and development tools, and be able to analyze, design, write, and debug assembly language programs according to requirements. The teaching content includes the basics of assembly language, commonly used processor instructions and assembly language pseudo-instructions, as well as sequential, branching, looping, and subroutine structures. It also includes extended Windows and DOS programming, mixed programming with C++, input and output instructions, and programming. Some assembly language courses have added MIPS instruction programming in their teaching content to align with the professional teaching plans of their respective schools.[1].
The assembly language teaching at Zhengzhou University adheres to the teaching philosophy of “goal-oriented, student-centered, and continuous improvement,” emphasizing practice and focusing on capability and quality cultivation. A tiered four-stage personalized online and offline blended teaching model has been adopted[2], completing four learning stages of independent learning, classroom guidance, project practice, and summary evaluation in three spaces: learning platform, classroom, and computer lab. In each learning stage, students’ knowledge, capabilities, and quality levels are gradually improved to achieve high-level and challenging learning goals. This course is one of the first batch of Zhengzhou University-Huawei intelligent foundation construction courses, combining knowledge from Huawei Cloud, Kunpeng, and other technical fields with assembly language courses to practice assembly language teaching based on the Kunpeng processor.
2 Issues Faced in Assembly Language Teaching Based on Kunpeng Processor
The assembly language of the Kunpeng processor is compatible with ARM assembly, and teaching ARM assembly language meets the requirements of China’s information technology independence and the development of the ICT industry. Existing assembly language teaching mainly uses Intel processors and their instruction sets as examples, with the development environment primarily being Microsoft’s systems and development tools such as Windows, MASM, Visual Studio, etc. Teaching ARM assembly based on the Kunpeng processor faces issues such as limited class hours, extensive content, difficulty in configuring experimental environments, and low student motivation.1) Limited class hours, extensive content.Assembly language teaching includes 32 theoretical class hours and 16 experimental class hours, covering hardware fundamentals, commonly used assembly instructions, assembly program design, and mixed programming. Since assembly language is hardware-related, the ARM assembly and Intel assembly are based on different processors, and the assembly instructions involve different registers, instruction formats, and mnemonics, increasing the teaching content without increasing the class hours.2) Difficulty in configuring experimental environments.Experiments are an important means of combining theory and practice in assembly language teaching. Teaching assembly language using Intel processors generally employs PC machines, Windows systems, and tools like MASM and Visual Studio, but these tools are not suitable for teaching ARM assembly language. The Kunpeng processor is mainly used in embedded systems, making it difficult for individual learners to configure, which increases experimental difficulty.3) Low learning motivation.Assembly language is hardware-oriented, with numerous instructions, making writing and debugging more difficult. The course’s difficulty is high, and the content is dry and obscure. Some students do not understand the importance of the course, believing that learning assembly language is not very useful for practical work, leading to low motivation.
3 Reform Practices in Assembly Language Teaching Based on Kunpeng Processor
3.1 Reconstructing Teaching Content with a Systematic View
According to the Ministry of Education’s requirements for the construction of “new engineering”[3], cultivating students’ ability to solve “complex engineering problems” is essential to meet the new demands of various industries in the new engineering era. Systematic thinking is key to enabling computer majors to solve “complex engineering problems”[4]. We aimed to cultivate systematic thinking, deepen understanding of computer systems, and improve programming capabilities, leading to reforms in assembly language teaching. We constructed a knowledge map related to the course based on a systematic view, restructured the teaching content of assembly language, reformed experimental teaching, and strengthened the integration of ideological and political elements into the course.
1) Constructing a knowledge map across multiple courses.
Assembly language serves as a bridge between computer software and hardware, playing a vital role in computer architecture. It is related to courses such as C language, computer organization principles, compilation principles, and operating systems. Constructing a multi-course knowledge map centered on the goals of assembly language teaching is fundamental to cultivating students’ systematic thinking. Table 1 shows some knowledge points related to the assembly language course and other courses.

2) Restructuring teaching content.
On the basis of the original teaching content for Intel processors, we supplemented knowledge points including multi-platform program runtime environments, ARM basic assembly instructions, and system calls. Intel assembly and ARM assembly are used in different operating systems and processors; the Intel assembly environment is Windows + Intel processor, while the ARM assembly environment is Linux + Kunpeng processor. For the ARM assembly environment, this course adopts Huawei Cloud’s CodeArts Online Kunpeng architecture. The original MASM-based development tools are only suitable for Intel processor assembly language program design, so we supplemented the introduction of open-source tools like GCC and NASM. ARM assembly and Intel assembly belong to different types of instruction sets, and the assembly code for the same functionality has different instruction formats and registers. Therefore, the teaching content has been expanded to include the introduction of ARM basic instructions and directives. Based on the knowledge map, we have added tertiary knowledge points related to Kunpeng processor assembly teaching in most corresponding secondary knowledge points (see Table 2). Additionally, we have included primary knowledge points for input-output program design and secondary knowledge points for system calls, which include tertiary knowledge points for Linux system calls, Windows API calls, and DOS system calls, covering programming examples under both Windows and Linux.
3) Adopting a blended teaching model.To address the issues of limited class hours and extensive content, we still adopt a blended teaching model, completing four learning stages of independent learning, classroom guidance, project practice, and summary evaluation in three spaces: learning platform, classroom, and computer lab, while adjusting the learning focus for each stage. Students independently learn from the learning materials for the Kunpeng processor, and teachers explain key and difficult points during classroom guidance. They organize discussions on how to complete the ARM assembly migration based on Intel assembly examples, and after class, students perform code migration tests on Huawei Cloud to master the use of ARM assembly, enhancing their autonomous learning and practical skills. Finally, learning evaluations are conducted through flipped classrooms or experimental reports to achieve learning objectives.3.2 Experimental Teaching Reform to Enhance Students’ Innovation AbilityExperimental teaching is an essential means of understanding and applying theoretical knowledge. Students enhance their hands-on and application abilities through practical operations such as programming, simulation, and integration. To meet the needs of Kunpeng processor assembly language teaching, we have supplemented assembly experiments for the Kunpeng processor.1) Designing experimental tasks that integrate multiple knowledge points.Based on the constructed multi-course knowledge map, we design experimental tasks primarily based on this course’s knowledge points while integrating relevant course knowledge points. For example, we utilize disassembly of C language programs on both Kunpeng and Intel processors to understand data representation and definition, compare the assembly instructions of different processors, and understand the machine-related characteristics of assembly language. We implement array processing using different addressing methods to comprehend the implementation principles of C language arrays and use assembly language to perform alternating division calculations, understanding the logical consistency between software and hardware.2) Diversifying experimental task platforms.We encourage students to complete experimental tasks on different experimental platforms. For instance, in a program development experiment, students are tasked with writing a program to display “hello assembly.” They first input example code to execute and then are required to write a C language program to achieve the same functionality. We encourage students to complete the same task using different tools such as MASM, NASM, LINK, LD, and GCC on Windows, Linux systems, x86, and Kunpeng processors. They can view the assembly code through disassembly under both Kunpeng and Intel processors, analyze the differences between C language and assembly input-output, and compare the assembly instructions and characteristics of different processors, gaining an understanding of the hardware-related characteristics of assembly language. In the input-output subroutine library experiment, students can complete experimental tasks in three environments: Linux + x86, Linux + Kunpeng processor, and Windows + x86, experiencing concepts such as computer working modes and system calls, cultivating a computer system perspective.3) Leveling experimental tasks.For each experiment, fixed scores are assigned, including different difficulty levels and types of experimental tasks. Students can choose tasks according to their interests and learning situations, achieving the required score for the experiment. The difficulty of experimental tasks is leveled, with each task’s score allocated based on its difficulty, encouraging students to challenge difficult problems and innovate, thus stimulating their motivation.A total of 8 assembly language experiments have been designed, each including verification, design, optimization, and open-type experimental tasks. Each experiment contains multiple tasks, with different scores for different tasks, but the highest score is 100 points. For example, the objective of the DOS application development experiment is to master the programming application of system function calls and input-output instructions. This experiment includes 5 experimental tasks, each with a corresponding type, score, and difficulty as shown in Table 3; Task 5’s score is based on the Kunpeng processor.

3.3 Stimulating Learning Motivation through Ideological and Political EducationTo stimulate students’ learning motivation, we integrate ideological and political elements into the course content and characteristics. Our ideological education goals include understanding the status of assembly language in computer systems, enhancing professional confidence and sense of mission, cultivating national spirit and patriotism; fostering autonomous learning awareness, developing good professional qualities such as meticulousness and rigor, and possessing teamwork spirit, craftsmanship, and innovative spirit.During the course introduction, we emphasize the characteristics of assembly language through case studies of C language program analysis and hardware control, helping students understand the role of assembly language and increase their interest in learning. Through education on international situations, the development of domestic processors, and various real-world problem case explanations, we instill the belief of “a technologically strong nation” in students, maintaining patriotism, strengthening their aspiration to serve the country, and stimulating learning interest, making students understand the significance of learning ARM assembly language for future employment and knowledge system enhancement.In the teaching process of ARM assembly language, we use Huawei Cloud (Kunpeng) computing framework and development tools to familiarize students with domestic software usage, stimulating their national spirit and patriotism, and establishing the ideal of contributing to the localization of chips and software.In assembly language experiments, we add real-world application cases, such as developing new Kunpeng processor programs, encryption/decryption software, and analyzing and preventing computer viruses, and encourage students to participate in disciplinary competitions, publish papers, and apply for software copyrights, enhancing their sense of achievement.By learning the statement formats, program frameworks, and development methods of assembly language, we guide students to cultivate good programming habits and develop a meticulous and rigorous work attitude. Based on the online/offline blended learning approach of this course, we guide students to reasonably plan their autonomous learning time, enjoy online discussions, and actively participate in classroom activities. We encourage students to develop good learning habits to achieve better success in their future studies and work. In programming exercises, we suggest that students form study groups to discuss and analyze together, helping each other with questions, fostering a spirit of teamwork and mutual assistance. By checking the effectiveness of online learning, students can strengthen their autonomous learning ability and cultivate their self-discipline.
4 Reform Outcomes
Zhengzhou University’s assembly language course began participating in the Huawei intelligent foundation project in the fall semester of 2020. After years of teaching practice, we have accumulated rich teaching resources for Kunpeng processor assembly language, including 37 additional ARM assembly extension resources on the online learning platform, creating assembly courseware for the Kunpeng processor, publishing a textbook, and constructing a knowledge map that includes over 140 knowledge points related to ARM assembly language. The online and offline blended teaching model has increased classroom discussions, experiments, and teaching about Kunpeng processor programming. The teaching effectiveness has received praise from students and school supervisors, and the course has been rated as a national first-class course.
Students’ autonomous learning abilities, hands-on abilities, and innovation abilities have all improved, with a significantly increased proportion of students achieving good and excellent results in final exams, and the number of participants in open-type experiments has grown year by year. Three students designed and completed an IO subroutine library based on x86 under Linux and another based on the Kunpeng processor, addressing the shortcomings of the original assembly development package. Two of them obtained software copyright, and four students participated in the Kunpeng development board competition, all reaching the semifinals.
5 Conclusion
ARM assembly is a different instruction set architecture from Intel assembly, with widespread application value in embedded systems and mobile computing. It is an important reform direction for assembly language courses to adapt to technological development. As a leading domestic processor, the Kunpeng processor is very suitable for basic hardware development of ARM assembly. Integrating the content of Intel assembly and ARM assembly based on a cross-course knowledge map, and adopting a blended teaching approach can effectively address the issues of limited class hours and extensive content while training students’ autonomous learning abilities. Huawei’s CodeArts Online (Kunpeng) computing environment provides a convenient development environment for teaching, solving the difficulties of experimental hardware configuration; the ideological and political education and the leveling of experimental tasks across multiple platforms also significantly promote students’ motivation to tackle challenging problems and enhance learning enthusiasm.
References:
[1] Xuetang Online. Assembly Language Program Design [EB/OL]. (2017-02-20) [2019-12-15]. https://www.xuetangx.com/course/THU08091000320/21553982.
[2] Mu Lingling, Qian Xiaojie. Thoughts and Practices of Blended Teaching Based on MOOCs [J]. Computer Education, 2017(9): 82-86.
[3] Ministry of Education. Notice from the Higher Education Department of the Ministry of Education on the Research and Practice of New Engineering [EB/OL]. (2017-02-20) [2019-12-15]. http://www.moe.gov.cn/s78/A08/A08_gggs/A08_sjhj/201702/t20170223_297158.html.
[4] Sun Dawei, Zhang Yuqing. Analysis of the Cultivation Model of Computer System Thinking Ability under the New Engineering Background [J]. Computer Education, 2020(7): 94-97.
Funding Projects: National-level Online and Offline Blended First-Class Course in Assembly Language (2023241116); Henan Province Online and Offline Blended First-Class Course (202013173); Henan Province Online First-Class Course (202012860); Zhengzhou University-Huawei Intelligent Foundation Course Project.
Author Introduction: Mu Lingling, Female, Zhengzhou University Associate Professor, Research Direction: Natural Language Processing, [email protected].
Reference Format: Mu Lingling, Zhang Qing, Zhang Xingjin, et al. Reform of Assembly Language Teaching Based on Kunpeng Processor [J]. Computer Education, 2024(12):244-248.
Article Header Image Created by “Zhizhu Qingyan”.
(End)
More Exciting:
Yan Shi│The Impact of Generative AI on Computer Major Education and Countermeasures
Interview with the Principal│Rooted in Border Minority Areas, Focusing on Teacher Education to Cultivate High-Quality Applied Talents—Interview with Principal Chen Benhui of Lijiang Normal University
Yan Shi│Review and Prospects of Computer System Capability Cultivation
The Concept of “Student-Centered” Teaching and Discussion on Implementation Paths
Interview with the Principal│Promoting Interdisciplinary Integration to Cultivate Innovative Talents for the New Era—Interview with Professor Ni Mingxuan, Founding Principal of Hong Kong University of Science and Technology (Guangzhou)
New Year Message from the 7th Editorial Board
Guidelines for Ideological and Political Teaching in Computer Science Courses
Academician Chen Guoliang│Cultural Construction of Virtual Teaching and Research Room for Computer Curriculum Ideology and Politics
Professor Chen Daoxu from Nanjing University│Change and Constancy: Dialectics in the Learning Process
Yan Shi│Reflections and Suggestions on the “Predicament” of Young Teachers in Colleges and Universities
Xu Xiaofei et al.│Metaverse Education and Its Service Ecosystem
【Directory】 Computer Education Issue 11, 2024
【Directory】 Computer Education Issue 10, 2024
【Directory】 Computer Education Issue 9, 2024
【Directory】 Computer Education Issue 8, 2024
【Editorial Board Message】 Professor Li Xiaoming from Peking University: Reflections Triggered by the “Year of Classroom Teaching Improvement”…
Professor Chen Daoxu from Nanjing University: Teaching students to ask questions and teaching students to answer questions, which is more important?
【Yan Shi Series】: Development Trends of Computer Disciplines and Their Impact on Computer Education
Professor Li Xiaoming from Peking University: From Interesting Mathematics to Interesting Algorithms to Interesting Programming—A Path for Non-Major Learners to Experience Computational Thinking?
Reflections on Several Issues in Building a First-Class Computer Discipline
New Engineering and Big Data Major Construction
Learning from Others to Improve Ourselves—Compilation of Research Articles on Computer Education at Home and Abroad

