摘要:
8086汇编语言初学者教程(第5部分)常用函数库 - emu8086.inc通过引用一些常用函数,可以使你编程更加方便。在你的程序中使用其他文件中的函数的方法是INCLUDE后面接上你要引用的文件名。编译器会自动在你源程序所在的文件夹中查找你引用的文件,如果没有找到,它将搜索Inc文件夹。通常你无法完全理解emu8086.inc(位于Inc文件夹)但是这没有关系,你只用知道它能做什么就足够了。要使用emu8086.inc中的函数,你应当在你程序的开头加上include 'emu8086.inc'emu8086.inc定义了如下的宏:PUTC char- 将一个ascii字符输出 阅读全文
摘要:
8086汇编语言初学者教程(第四部分)中断 中断是一系列功能调用。这些功能调用使得编程更加容易。比如,你想在打印机上输出一个字符,你只需要简单的调用中断,它将帮你完成所有的事情。另外还有控制磁盘和其他硬件工作的中断。我们将这些功能调用称作软件中断。不同的硬件同样可以触发中断,这些中断称作硬件中断。这里,我们只介绍软件中断(software interrupts)。 触发一个软件中断,需要使用INT指令,它的使用方式非常简单: INT value上面value的取值范围是从0到255(或者0到0ffh),通常我们使用十六进制。你也许猜测只有256个中断调用,但是这是不正确的。因为每一个中断都有子 阅读全文
摘要:
8086汇编语言初学者教程(第三部分)变量变量是一个内存地址。对于编程者来说,使用诸如名称为“var1”这样的变量保存数据远远比使用5a73:235b这样的地址容易的多。特别是当你使用10个以上的变量的时侯。编译器支持这两种变量BYTE和WORD.(字节和字)声明变量的方法:nameDBvalue名称 DB 值nameDWvalue名称 DW 值DB- stays forDefineByte.DW- stays forDefineWord.name-可以是任何字母与数字构成,但是必须由字母开头。可以通过不命名来声明一个没有名称的的变量(这个变量只有地址,没有名称)value- 可以是任何数值支 阅读全文
摘要:
8086汇编语言初学者教程(第二部分)寻址方式我们可以通过下面的四个寄存器来寻址BX, SI, DI, BP. 通过计算[]符号中的值,我们可以访问到不同内存单元的值。具体组合请看下表:[BX + SI][BX + DI][BP + SI][BP + DI][SI][DI]d16 (variable offset only)[BX][BX + SI] + d8[BX + DI] + d8[BP + SI] + d8[BP + DI] + d8[SI] + d8[DI] + d8[BP] + d8[BX] + d8[BX + SI] + d16[BX + DI] + d16[BP + SI] + 阅读全文
摘要:
8086汇编语言初学者教程(第一部分)本教程是为从未接触过汇编语言的或者略知一二的朋友编写的。当然,如果你有其他语言基础(Basic, C/C++, Pascal...) 更好。但是,即使你熟悉汇编语言,最好也将本文通读以便熟悉Emu8086 标记。这里假定您已经掌握了关于数制的知识(十六进制/二进制),如果目前还没有,在进行下面内容之前,请参考上一章节进制。什么是汇编语言? 汇编语言是底层编程语言。为了学习这门语言,你需要对于计算机结构有所了解。计算机系统模型如下:系统总线 system bus(图中黄色部分)是将计算机各个部分连接到一起的部件。CPU是计算机的心脏,大部分的运算都是在CP. 阅读全文
摘要:
基础知识什么是进制?对于同一个数字有很多表示方式。很久很久以前人们用棍子计数,后来学会在地上画棍子,最终画在纸上.比如:|||||(5根棍子)罗马人使用不同的符号表示棍子数目:|||仍然表示3根棍子,而用V表示5根棍子用X表示10根~在当时,使用棍子计数是伟大的发明.用符号代替棍子更是如此.如今采用十进制系统表示数字是最好的方法之一.之所以这样说是因为它实现了用符号表示"没有"这一重要思想(3个XX?)1500年前的印度,零(0)第一次被看作一个数字.稍后,这一概念在中东阿拉伯地区使用,最终传播到西方拉美国家。在下面的学习中,你会逐渐认识到这个思想对于现代数字系统是多么重要。十进制系统目前使用 阅读全文