汇编文件操作程序举例

编写一个程序显示由例10.11建立的记录文件students.dat中的学生信息。解: .MODEL SMALL,C studentSTRUCT idDW ? snameDB 10DUP(?) ageDB ? studentENDS .DATA fnameDB \"Students.dat\",0 id1DB \"Id:\",4dup(?),0dh,0ah,\"$\" name1DB \"Name... [阅读全文]

动态数据编程:汇编动态数据的编程

动态数据结构是一种常用的数据结构,在事先不知道所处理数据容量的情况,用动态数据是一种行之有效的方法,也为许多C语言程序员所采用。在汇编语言中,我们也可以采用动态数据的方式来存储数据,并进行链表的遍历。 为了使读者尽快理解本例的功能,我们把与之相似功能的C语言程序书写如下: #includestdio.h #includealloc.h structlink{ intdata; structlink... [阅读全文]

子程序调用:子程序的调用伪指令

子程序调用伪指令INVOKE与子程序的调用指令CALL在功能上是一致的,但它使汇编语言的子程序调用方法高级语言化,程序员可不用理会一些调用细节问题。 调用伪指令INVOKE的使用格式如下: INVOKEexpression[,arguments] 其中:expression—地址表达式,通常为子程序名; arguments—传递的各参数之间用逗号’,’分开,参数可以是寄存器、表达式或ADDR标识符... [阅读全文]

asp定义局部变量:局部变量的定义

局部变量的定义格式: LOCAL变量名[[数量]][:数据类型][,变量名[[数量]][:数据类型]]... 伪指令LOCAL的作用是说明一个或多个临时的局部变量(位于堆栈中)。局部变量必须在任何指令之前加以说明,并可用多个LOCAL伪指令来说明其局部变量。 在子程序中,若说明了某个局部变量,则子程序体中的指令就可使用该局部变量。汇编程序会把对它的引用转换成用指针寄存器BP来访问其在堆栈中的实际存... [阅读全文]

子程序:子程序库

库文件对学过C/C++语言程序设计的读者来说应该是不会陌生的,该语言的程序设计环境提供了大量的库文件,也就是说,提供了大量的标准函数或过程。在本节里,介绍读者如何创建自己的库文件。 7.6.1建立库文件命令LIB 宏汇编MASM系统提供了建立库文件的命令文件LIB.EXE。其通常是在命令行环境(MS-DOS方式)下使用的,当然,也可在Windows95/98等环境下利用其“开始”菜单下的“运行”功... [阅读全文]

数据库的应用:库文件的应用

在开发一个功能较弱的应用程序时,其执行文件通常可由一个目标文件连接而成,当开发一个功能较强、关系较复杂的应用程序时,其执行文件很难由一个目标文件连接而成,常常是由多个目标文件(模块)连接而成的。各模块之间无疑会存在着相互调用、相互访问数据单元等内在联系,各模块之间的相互联系就产生了这样的问题:程序员如何在源程序中来表达这种联系? 为了解决描述各模块之间的联系,汇编语言提供了二条伪指令PUBLIC和... [阅读全文]

eda的应用举例:库文件的应用举例

把例7.3、7.4和7.5合并在一起生成一个可执行文件,假设它们所对应的源程序名分别为Count.ASM、DispBX.ASM和Main.ASM。 解:由于在源文件Count.ASM中调用了子程序UPPER,所以,例7.1的程序也必须加入到本题中。假设其源文件名为Upper.ASM。 由于生成本题的执行文件需要四个模块,模块之间存在着调用关系,所以,在有关源文件中需要说明某些标识符为外部属性,或说... [阅读全文]

iso文件好处:库文件的好处

程序员在编写源程序时,通常采用模块化的思想来组织源程序:把各类不同的子程序分别编写在不同的源程序中,在各源程序中说明所用到的在其它模块中定义,或说明本模块的定义子程序可被其它模块调用。这样组织后,就可以分别汇编它们而得到其相应的目标文件,在有了这些目标文件后,就可生成最终的可执行文件,但可用不同的方法来生成最终的可执行目标文件。 方法1:直接连接目标文件而生成可执行文件(如上节例7.6中的方法1所... [阅读全文]

输入设备和输出设备:输入输出和中断

输入输出功能是计算机的重要组成部分,是人—机交互功能的主要承担者。在早期的计算机系统中,通常把输入输出设备或功能作为次要的部分,而把CPU作为主要研究对象。但现在随着输入输出设备的日益丰富、功能要求越来越复杂,输入输出部分在整个计算机系统中的地位也得到了进一步提高。 本章先介绍了I/O的基本概念和I/O指令,再叙述了中断的概念及其工作过程,并列举出计算机系统中若干个常用的中断及其功能。 8.1输入... [阅读全文]

dota指令:I/O指令

由于I/O端口地址和内存单元地址是相互独立的,这些端口地址不能普通的访问内存指令来访问其信息,所以,在CPU的指令系统中就专门设置了I/O指令来存取I/O端口的信息。按功能分类来看,I/O指令应属于数据传送指令。 1、输入指令IN 输入指令IN的一般格式如下: INAL/AX,PortNo/DX 该指令的作用是从端口中读入一个字节或字,并保存在寄存器AL或AX中。如果某输入设备的端口地址在0~25... [阅读全文]

系统中断控制器:中断

在计算机系统中,引入中断的最初目的是为了提高系统的输入输出性能。随着计算机应用的发展,中断技术也应用到计算机系统的许多领域,如:多道程序、分时系统、实时处理、程序监视和跟踪等领域。 8.2.1中断的基本概念 下面只简单介绍与汇编语言程序设计有关的中断知识,使本章的知识具有一定完整性。有关中断的详细介绍可参阅《计算机组成原理》课程中的相关章节。 1、中断和中断源 所谓中断就是CPU暂停当前程序的执行... [阅读全文]

中断指令:引起中断的指令

中断处理程序基本上是系统程序员编写好的,是为操作系统或用户程序服务的。为了在应用程序中使用中断服务程序,程序员必须能够在程序中有目的地安排中断的发生。为此,指令系统提供了各种引起中断的指令。 1、中断指令INT 中断指令INT的一般格式如下: INTImm 其中:立即数Imm是一个0~0FFH范围内的整数。 指令执行的步骤: ◆、把标志寄存器压栈,清除标志位IF和TF; ◆、把代码段寄存器CS的内... [阅读全文]

中断指令:中断返回指令

当一个中断服务程序执行完毕时,CPU将恢复被中断的现场,返回到引起中断的程序中。为了实现此项功能,指令系统提供了一条专用的中断返回指令。该指令的格式如下: IRET/IRETD 该指令执行的过程基本上是INT指令的逆过程,具体如下: ◆、从栈顶弹出内容送入IP; ◆、再从新栈顶弹出内容送入CS; ◆、再从新栈顶弹出内容送入标志寄存器; 对80386及其以后的CPU,指令IRETD从栈顶弹出32位内... [阅读全文]

中断分类:中断功能的分类

计算机系统有上百种中断,若按中断的性质来划分,则系统中的中断可分为:可屏蔽中断和不可屏蔽中断。对不可屏蔽中断,程序员不能控制它,系统肯定会立即响应的,而对于可屏蔽中断,汇编语言程序员可以通过指令CLI和STI来控制对它们的响应。 若按中断源来划分,则系统中的中断又可分为:硬件中断和软件中断。对于硬件中断,程序员不能控制它,它们基本上是随机产生的,而对于软件中断,汇编语言程序员可通过指令INT和IN... [阅读全文]

键盘中断:键盘输入的中断功能

键盘输入是绝大多数程序的主要输入方式,学习和掌握有关键盘输入中断的使用方法对编写交互式程序是非常重要的,也能更进一步理解计算机是如何接受键盘输入的。 1、键盘缓冲区 键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下: KBHeadDW ?;其内存地址为0000:041AH,缓冲区头指针 KBTailDW ?;其内存地址为0000:041CH,缓冲区尾指针 KBBuffDW 16DUP(?);... [阅读全文]

屏幕显示的中断功能

显示器是个重要输出设备它通过显示卡和计算机系统相连显示器显示屏通常称的为屏幕现在常用显示器有14\"和17\"常用显示分辨率为800×600或1024×768等常用显示卡类型为VGA、SVGA、EVGA和TVGA等显示卡上也都带有大量显示存储器能快速显示精美图象 1、显示模式 计算机系统中显示器都有 2种显示方式:文本显示方式和图形显示方式在DOS操作系统环境下... [阅读全文]

图形显示:图形显示方式

图形显示是目前最常用种显示方式也是Windows操作系统默认显示方式在该显示方式下我们可以看到优美图象、VCD、浏览丰富多彩网页等 图形显示最小单位是象素对每个象素可用区别颜色来显示所以在显示缓冲区内记录信息是屏幕各象素显示颜色 由于各种图形显示模式所能显示颜色和象素是区别它决定了显示缓冲区存储方式也是区别下面给出 3个具体图形显示模式及其存储方式通过它们可看出... [阅读全文]

缓冲区溢出:显示缓冲区

2、显示缓冲区 显示缓冲区是用来记录屏幕显示信息在文本显示方式下这些显示信息包括:每个显示ASCII码及其显示属性如图8.7所示在图形显示方式下显示缓冲区内存储每个象素显示颜色 在图8.7中我们并没有给出具体段地址只用\"XXXX\"来表示其段地址在常用VGA显示方式下计算机系统规定: 文本显示方式下单色显示器显示缓冲区段地址为0B000H; 文本显示方式下彩色... [阅读全文]

中断处理过程:键盘中断的处理过程

当用户按键时键盘接口会得到个代表该按键键盘扫描码同时产生个中断请求键盘中断服务先从键盘接口取得按键扫描码然后根据其扫描码判断用户所按键并作相应处理最后通知中断控制器本次中断结束并实现中断返回 若用户按下双态键(如:Caps Lock、Num Lock和Scroll Lock等)则在键盘上相应LED指示灯状态将发生改变; 若用户按下控制键(如:Ctrl、Alt和S... [阅读全文]

键盘输入:键盘输入的举例

用键盘最多输入10个并存入内存变量Buff中若按“Enter”键则表示输入结束 解: 1、思路方法1 .MODEL SMALL  CR EQU  0DH;定义“回车”键符号名 .DATA  Buff DB  10 DUP(?) .CODE .STARTUP MOV CX, 0AH LEA BX, Buff .REPEAT  MOV AH, 0H  INT 16H... [阅读全文]

cad打印输出:打印输出的中断功能

打印输出是种硬拷贝输出也是种常用输出形式随着计算机应用领域不断扩大外围设备重视程度也越来越高目前打印机种类已日益丰富有针式打印机、喷墨打印机和激光打印机等从打印色彩来看既有普通黑色打印也有彩色打印总的计算机打印输出品质是越来越高 1、打印机状态字 打印机状态字记录着打印机当前工作情况(或状态)它相当于CPU中状态字和键盘状态字打印机状态字各位定义如图8.11所示... [阅读全文]

串行通信:串行通信口的中断功能

计算机通信功能是现代计算机网络最基本功能如果计算机没有通信功能计算机网络环境也就无从谈起台计算机和其它计算机(或设备)的间通信除了必要物理连接的外它们的间通信接口功能就是另个极其重要功能模块 从计算机通信本质来看通信就是发送或接受具有定格式 2进制位这些 2进制位通过些应用——如浏览器——解释显示成具有区别表达形式文字或图象 为了方便实现计算机通信功能在系统低层... [阅读全文]

鼠标的功能:鼠标的中断功能

鼠标是现在计算机系统中个常用输入设备它为使用计算机带来了很大方便鼠标指针各种表现形式还反映了系统(或应用)当前处于什么样工作状态许多计算机使用者为体现其个性化还选择各自喜欢鼠标图形所以了解和掌握计算机系统对鼠标所提供功能对理解鼠标各种操作也是有定帮助 1、鼠标中断常用功能 BIOS系统提供了中断33H来实现鼠标中断功能其常用功能如下: 00H—化鼠标 01H—显... [阅读全文]

无法创建目录和文件:目录和文件的中断功能

中断21H提供了许多有关目录和文件操作功能其中常用功能如下: 1、操作目录常用功能 39H——创建目录3BH——设置当前目录 3AH——删除目录47H——读取当前目录 有关中断功能详细描述和参数在此从略需要查阅者可参阅附录3的目录控制功能 2、用文件句柄操作文件常用功能 3CH——创建文件4EH——查找到第个文件 3DH——打开文件4FH——查找下个文件 3EH... [阅读全文]

内存管理:内存管理的中断功能

在C/C语言环境中若事先不知道数据容量那么可通过动态申请空间思路方法来解决数据存储问题这种动态数据结构可用中断21H所提供存储管理功能来实现 中断21H在内存管理方面所提供主要功能如下: 48H——分配内存块 49H——释放内存块 4AH——重定义内存块大小 58H——读取/设置内存分配策略其最基本分配策略有 3种:第满足、最好满足和最后满足 有关中断功能详细描... [阅读全文]

中断向量:设置中断向量

(1)、DOS功能思路方法 中断21H的功能25H可为指定中断号设置新入口地址其使用思路方法如下: 入口参数:AH=中断号DS:DX=中断处理入口地址 出口参数:无 例8.17 用功能思路方法把子NewFunc设置为中断n中断处理 解: …… NewFuncPROC …… IRET;注意其返回指令 NewFuncENDP …… MOVAX, SEG NewFun... [阅读全文]

分支结构:用伪指令实现的分支结构

为了改善汇编语言源结构减少显式转移语句所带来混乱在宏汇编MASM 6.11系统中增加了表达分支结构伪指令该伪指令书写格式和高级语言书写方式相类似汇编在汇编时会自动增加转移指令和相应标号理解并掌握该知识对将来学习编译原理课程也有定帮助 分支伪指令具体格式如下: 格式1: .IF condition    ;以英文“句号”开头   指令序列     ;条件\"con... [阅读全文]

循环结构:汇编循环结构

循环结构是个重要结构它具有重复执行某段功能通常循环结构包括以下 4个组成部分: 1、循环化部分——化循环控制变量、循环体所用到变量; 2、循环体部分——循环结构主体; 3、循环调整部分——循环控制变量修改、或循环终止条件检查; 4、循环控制部分——执行控制转移 以上 4部分可以在中用各种区别形式体现出来有时也并非清析地表达出来常用循环结构如图6.3所示 (a)、... [阅读全文]

循环结构:用伪指令实现的循环结构

在宏汇编MASM 6.11系统中还增加了表达循环结构伪指令以便更清晰地表达WHILE循环、REPEAT-UNTIL循环另外还增加两个辅助循环伪指令这些伪指令书写格式和含义和高级语言中相应语句书写格式和含义相致所以这些伪指令是很容易掌握也是非常有用 循环伪指令格式和含义如下: 1、WHILE型循环伪指令 .WHILE condition   循环体指令序列    ... [阅读全文]

伪指令:辅助循环伪指令

(1)、终止循环伪指令 .BREAK .BREAK .IF condition 该伪指令用来终止包含它最内层循环前者是无条件终止循环后者是仅当逻辑表达式condition为真时才终止循环 .WHILE 1.REPEAT … .BREAK .IF condition …… .BREAK .IF condition … ENDW.UNTIL 0 对于以上 2个循... [阅读全文]
<< < 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 > 共797条 分27页