数码在线
白蓝主题五 · 清爽阅读
首页  > 演示制作

汇编语言emu8086怎么用?手把手带你跑第一个程序

emu8086是什么,为什么学它

学计算机底层或者上微机原理课,绕不开8086汇编。emu8086是个模拟器,能让你在Windows上写、调试、运行8086汇编代码,不用真去搞老古董硬件。界面简单,适合新手入门,很多学校实验课也用它。

安装和界面初识

官网下载安装包,一路下一步就行,没太多坑。打开后主界面分几块:上面是菜单栏和工具按钮,中间是代码编辑区,下面能看到寄存器状态、内存、标志位这些实时变化。右边还有个虚拟PC界面,可以看程序运行效果,比如输出字符、画点啥的。

写第一个“Hello World”程序

别想太复杂,先让程序动起来。下面这个例子会在屏幕上打印一个字符‘A’:

org 100h

mov ah, 02h
mov dl, 41h
int 21h

ret

这段代码的意思是调用DOS中断,在控制台输出一个字符。41h就是ASCII码里的‘A’。输入完点“Emulate”,再点“Single Step”一步步走,你能看到每一步寄存器的变化,挺直观的。

常用操作流程

写完代码,先点“Compile”编译。如果语法有错,底下会报错,双击错误行能跳转到位置。编译通过后自动进模拟模式,这时候可以用“Run”直接跑完,或者“Step”逐条执行,观察寄存器和内存变化,对理解指令特别有帮助。

调试小技巧

遇到程序卡住或者结果不对,别急着重写。在左侧点一下行号设断点,运行到那会停下来。这时候看看AX、BX这些寄存器的值对不对,标志位ZF、CF有没有被影响。比如做加法结果为零,ZF应该变1,如果没变,就得回头查指令。

做个简单演示:在屏幕上画线

emu8086自带图形模式支持,可以写个小程序在虚拟屏幕上画条横线:

org 100h

mov ah, 00h
mov al, 13h
int 10h ; 进入320x200图形模式

mov ah, 0ch
mov al, 4 ; 颜色红色
mov cx, 100 ; x坐标
mov dx, 100 ; y坐标

draw:
int 10h
inc cx
cmp cx, 200
jl draw

mov ah, 08h
int 21h ; 按任意键继续

mov ah, 00h
mov al, 03h
int 10h ; 退回文本模式

ret

点运行后,右边虚拟屏就会出现一条红线。这种小演示用来交作业或者课堂展示都挺拿得出手。

常见问题处理

有时候点了运行没反应,先检查是不是忘了加ret或者int 20h结束程序。还有些人复制代码带了全角字符,编译直接报错。建议写完自己过一遍,关键字如mov、int、ah这些有没有拼错。

另外,emu8086不支持所有现代汇编语法,别用NASM或MASM那些高级特性,老老实实用它的语法规范,省得折腾。