If you are a Computer Science student like me, no matter how much time has passed, the memories and pain of trying to learn and code Assembly language might still be vivid in your memory. After going through a similar experience, Tabish Rafiq, a Computer Science student from the University of Karachi, has made an IDE for Assembly language which will make the lives of students like him much easier.
What’s so bad about Assembly Language?
Those who have tried studying Assembly language would most probably not need an answer to this question, however, for some of the less technical readers out there, I should clarify: ASSEMBLY LANGUAGE PROGRAMMING IS A NIGHTMARE! Especially the 16 bit NASM (Netwide Assembler) or MASM (Microsoft Assembler) programming. You know how you can just boot up Visual Studio, Eclipse, PyCharm or some other IDE when you want to code in C++, Java or Python? Yeah, that’s not what usually happens in Assembly Language programming.
When I studied Assembly language at FAST NUCES Lahore, we used a simple text editor, NASM compiler and DOSBox emulator to run the programs. The most help we could find was to get a text editor like Atom and install some extensions to make it a little bit friendly for Assembly language. Finding mistakes and debugging the programs was still a nightmare and this was the reason that many students were genuinely afraid of the course.
Asmder to the rescue
Asmder, an IDE developed by a Pakistani student, aims to be the cure for all the ailments that I have mentioned above. It makes use of the DOSBox emulator and provides some added benefits and functionalities to make the lives of the students easier.
Motivation behind Asmder
Tabish Rafiq, the brain behind the whole operation, is a Computer Science student at the University of Karachi. He had to go through all the difficulties that come with coding in Assembly language. Seeing as there was no proper IDE available to help students go through that course, he set out to develop one of his own.
The result of this idea and nearly a year of hard work is Asmder. Here are its key features:
- Syntax highlighting
- Code explorer
- 64-bit compatibility
- Instant error detection
- Easy debugging with registers/flags inspection
Asmder provides a full-blown development environment for MASM application which includes a very intelligent editor which can auto-complete the instructions and detect errors before you run the program.
With a simple click, it opens DOSBox and runs the program for you. You don’t have to manually locate the code and enter the name of file and output file. It makes the whole process much more seamless.
The biggest and most interesting feature of Asmder is probably the debugger. Usually, with Assembly language code, you don’t get many debugging options, and those that you do get are pretty limited in scope and harder to interpret. Asmder includes a debugger which can show the changing values of the registers and flags as you go line by line through the code.
Apart from these great features which aid in coding in a better and easier manner, Amsder also offers a few customization options which help make the IDE more personal. You can choose between a light and a dark theme for the editor and also use your own custom fonts.
The importance and usefulness of this IDE to students are better explained in the words of Noor ul Anam, a current student at University of Karachi:
“When I started coding in assembly language, it was very boring and I couldn’t remember how to link, run and compile the code. Finding errors was a nightmare and you couldn’t paste something in the DOS window resulting either in switching windows or writing the whole code each time. But with Asmder, we don’t have to go through all the trouble and just focus on logical stuff more and I think it’s now almost as much fun as coding in high-level languages.”
What’s next for Asmder?
Tabish has partnered with different teachers in his institution and as a result of their efforts, it is now widely being used in department labs, making the lives of students easier every day. The University of Karachi plans to launch this software through their own channels in the future. While talking to TechJuice, Tabish revealed that while he does have a business model in his plans, he wants all the students to get the software for free. Although currently the IDE only supports MASM, he plans to add support for NASM and other technologies in the near future.
Note: As the University of Karachi is currently planning to launch the software through their own channels, we cannot share the current build with users. We will keep tabs on its progress and inform the readers when the final version is available for the public.
It’s very common to hear students complaining about something which they don’t like or something which they think that should exist to assist them in their studies (I know, I am one of them), but not a lot of them take steps to make sure that others won’t have to complain in the future. Tabish Rafiq took that step with Asmder and it’s very refreshing to see something of this quality coming from a Pakistani Computer Science student. We can also hope that this example would encourage more students to think outside of their syllabus and explore the field of Computer like it is meant to be.