您的位置: 主页>语言大全 >汇编语言实验10:使用中断实现键盘输入与显示

汇编语言实验10:使用中断实现键盘输入与显示

来源:www.ethphygital.com 时间:2024-07-11 19:38:23 作者:细语语言网 浏览: [手机版]

汇编语言实验10:使用中断实现键盘输入与显示(1)

概述

  本实验旨在通过使用中断的方式,实现键盘输入显示功能www.ethphygital.com。通过本实验的学习,可以更好地理解中断的概念使用方法,并掌握键盘输入显示的本操作。

实验

本实验使用的汇编语言为8086汇编语言,开发境为DOSBox。

汇编语言实验10:使用中断实现键盘输入与显示(2)

实验过程

  1. 置中断向量表

在汇编语言中,中断向量表是一个存储中断处理程序入地址的表格。在本实验中,需要置键盘中断显示中断的向量表。

  键盘中断的向量号为9,需要将其对应的中断处理程序入地址存储在向量表的第9个单元中。显示中断的向量号为10,需要将其对应的中断处理程序入地址存储在向量表的第10个单元中。

下面是置中断向量表的代码:

```

  MOV AX, @DATA

  MOV DS, AX

;置键盘中断向量表

  MOV AH, 25H

  MOV AL, 9

  MOV DX, OFFSET KeyboardHandler

  INT 21H

;置显示中断向量表

MOV AH, 25H

  MOV AL, 10

  MOV DX, OFFSET DisplayHandler

  INT 21H

  ```

  其中,@DATA是一个汇编语言中的伪指令,用于获取数段的段地址。MOV DS, AX指令将数段的段地址存储在DS寄存器中www.ethphygital.com。MOV AH, 25H指令是一个DOS系调用,用于置中断向量表。MOV AL, 9MOV AL, 10分指定了键盘中断显示中断的向量号。MOV DX, OFFSET KeyboardHandlerMOV DX, OFFSET DisplayHandler分指定了键盘中断处理程序显示中断处理程序的入地址。

2. 编写键盘中断处理程序

  键盘中断处理程序是一个特殊的程序,它会在键盘输入时自动被调用。在本实验中,需要编写一个键盘中断处理程序,用于获取键盘输入的字符,并将其存储在缓冲区中。

下面是键盘中断处理程序的代码:

```

KeyboardHandler PROC

  PUSH AX

  PUSH BX

  PUSH CX

PUSH DX

MOV AH, 00H

INT 16H

  MOV BX, OFFSET Buffer

  MOV CX, WORD PTR [BufferSize]

MOV DL, AL

  MOV BYTE PTR [BX+CX], DL

INC WORD PTR [BufferSize]

POP DX

  POP CX

POP BX

POP AX

  IRET

  KeyboardHandler ENDP

```

  其中,PUSHPOP指令用于保存恢复寄存器的值。MOV AH, 00HINT 16H指令是DOS系调用,用于获取键盘输入的字符。MOV BX, OFFSET BufferMOV CX, WORD PTR [BufferSize]分将缓冲区的地址大小存储在BXCX寄存器中SEg。MOV DL, AL将获取到的字符存储在DL寄存器中。MOV BYTE PTR [BX+CX], DL将字符存储在缓冲区中。INC WORD PTR [BufferSize]将缓冲区大小加1。IRET指令用于返回到中断调用前的程序。

  3. 编写显示中断处理程序

  显示中断处理程序是一个特殊的程序,它会在显示器需要刷新时自动被调用。在本实验中,需要编写一个显示中断处理程序,用于从缓冲区中读取字符,并将其显示在屏幕上。

下面是显示中断处理程序的代码:

  ```

  DisplayHandler PROC

  PUSH AX

  PUSH BX

  PUSH CX

  PUSH DX

MOV BX, OFFSET Buffer

  MOV CX, WORD PTR [BufferSize]

MOV DL, BYTE PTR [BX]

  MOV AH, 02H

  INT 21H

  INC BX

  DEC WORD PTR [BufferSize]

POP DX

POP CX

  POP BX

  POP AX

  IRET

  DisplayHandler ENDP

  ```

  其中,MOV BX, OFFSET BufferMOV CX, WORD PTR [BufferSize]分将缓冲区的地址大小存储在BXCX寄存器中。MOV DL, BYTE PTR [BX]将缓冲区中的第一个字符存储在DL寄存器中来源www.ethphygital.com。MOV AH, 02HINT 21H指令是DOS系调用,用于将字符显示在屏幕上。INC BX将缓冲区指针向后移动一位。DEC WORD PTR [BufferSize]将缓冲区大小减1。IRET指令用于返回到中断调用前的程序。

  4. 启用中断

  最后,需要启用键盘中断显示中断。下面是启用中断的代码:

  ```

  CLI

  MOV AX, 40H

  MOV DS, AX

  MOV BYTE PTR [1CH], 20H

MOV BYTE PTR [1DH], 20H

STI

  ```

  其中,CLISTI指令用于关闭开启中断。MOV AX, 40H将中断向量表的段地址存储在AX寄存器中。MOV DS, AX将中断向量表的段地址存储在DS寄存器中SEg。MOV BYTE PTR [1CH], 20HMOV BYTE PTR [1DH], 20H分启用键盘中断显示中断。这里的1CH1DH是键盘中断显示中断的控字寄存器地址。

实验结果

  经过以上步骤,实验已经完成。现在可以在屏幕上输入字符,并在屏幕上显示出来。

汇编语言实验10:使用中断实现键盘输入与显示(3)

总结

  本实验通过使用中断的方式,实现了键盘输入显示功能。通过实验的学习,可以更好地理解中断的概念使用方法,并掌握键盘输入显示的本操作。在实际开发中,中断是一个非常要的概念,可以大大提高程序的响应速度效率。

0% (0)
0% (0)
版权声明:《汇编语言实验10:使用中断实现键盘输入与显示》一文由细语语言网(www.ethphygital.com)网友投稿,不代表本站观点,版权归原作者本人所有,转载请注明出处,如有侵权、虚假信息、错误信息或任何问题,请尽快与我们联系,我们将第一时间处理!

我要评论

评论 ( 0 条评论)
网友评论仅供其表达个人看法,并不表明好好孕立场。
最新评论

还没有评论,快来做评论第一人吧!
相关文章
  • 探讨语言障碍症的诊断与治疗方法

    引言语言是人类交流的重要工具,但有些人却因为某些原因无法正常使用语言,这就是语言障碍症。语言障碍症会给患者的生活和学习带来不便,因此及时诊断和治疗是非常重要的。什么是语言障碍症语言障碍症是指一种影响语言能力的神经发育障碍或脑损伤。它会影响听、说、读、写等方面的语言能力,使患者无法正常使用语言进行交流。

    [ 2024-07-11 19:29:38 ]
  • 探究人类对于未知事物的好奇心

    人类作为一种高度智能的生物,总是对未知的事物充满了好奇心。从古至今,人类的好奇心驱使着我们不断地探索、发现和创新。本文将从心理学、社会学和科学角度探究人类对于未知事物的好奇心。一、心理学角度心理学家认为,好奇心是人类天生的本能。从婴儿时期开始,人类就开始表现出对于周围环境的好奇心。好奇心驱使着我们去探索、观察和学习。

    [ 2024-07-11 19:24:52 ]
  • 语言培养孩子的作用

    语言是人类交流和思考的重要工具,对于孩子的成长和发展具有重要作用。语言培养不仅仅是让孩子学会说话,更是为孩子的未来打下坚实的基础。本文将从多个方面探讨语言培养孩子的作用。1. 帮助孩子建立良好的沟通能力语言是人类交流的基础,良好的沟通能力是一个人成功的关键。

    [ 2024-07-11 19:19:14 ]
  • c语言移位操作符

    C语言中的移位操作符是一种二元运算符,用于对二进制数进行移位操作。C语言中提供了两种移位操作符:左移位操作符(>)。这两种操作符都是按位操作符,它们将二进制数的每一位进行移动,并在移动后填充0或1。左移位操作符(>)右移位操作符(>>)是将一个数的二进制表示向右移动指定的位数。移位后,左侧的空位将被填充0或1,取决于该数的符号位。

    [ 2024-07-11 18:40:14 ]
  • 如何提高写作能力_语言调用cad块

    原创标题:写作之路,提升你的文字魅力写作是一门艺术,也是一项重要的沟通工具。无论是在学业、职场还是日常生活中,良好的写作能力都能帮助我们更好地表达思想,传递信息,甚至影响他人。然而,许多人在写作时常常感到困惑和无力,不知道如何提高自己的写作能力。本文将为大家分享一些提升写作能力的方法和技巧,帮助你在写作道路上更进一步。1. 阅读广泛

    [ 2024-07-11 18:31:12 ]
  • 探讨中华文化的博大精深

    中华文化源远流长,是世界上历史最悠久、最为灿烂的文化之一。它独具特色,博大精深,影响着全球华人和许多外国人。本文将探讨中华文化的博大精深之处。一、中华文化的历史悠久中华文化的历史可以追溯到五千年前的新石器时代。在长期的发展过程中,中华文化不断吸收和融合了不同民族、不同地区的文化元素,形成了独特的中华文化。

    [ 2024-07-11 18:25:56 ]
  • C语言模板特性:提高代码复用性的利器

    C语言是一门广泛应用于系统编程、嵌入式开发等领域的编程语言。在实际开发中,我们经常会遇到需要编写多个函数或类似结构的代码,这时候就需要考虑如何提高代码的复用性。C语言的模板特性就是为此而生的。本文将介绍C语言模板特性的基本概念和使用方法,以及如何在实际开发中应用模板特性提高代码复用性。一、什么是C语言模板特性

    [ 2024-07-11 18:13:48 ]
  • 鼓励性语言在幼儿园教育中的重要性

    幼儿园教育是孩子成长过程中非常重要的一部分,不仅可以帮助孩子建立起良好的学习和生活习惯,还可以培养孩子的自信心和积极性。在幼儿园教育中,鼓励性语言的使用尤为重要,它可以帮助孩子树立正确的自我认知,增强自信心,提高学习兴趣,促进全面发展。什么是鼓励性语言?

    [ 2024-07-11 18:08:31 ]
  • 德国留学生语言签证拒签:原因和解决方案

    在申请德国留学时,德国语言签证是必不可少的一步。然而,有些留学生会遇到语言签证被拒签的情况,这不仅会耽误留学计划,还会造成经济损失和心理压力。本文将介绍德国留学生语言签证拒签的原因和解决方案,帮助留学生避免这一困境。原因一:申请材料不全或不符合要求

    [ 2024-07-11 18:04:05 ]
  • 如何学好苗族语言

    苗族语言是中国的少数民族语言之一,也是苗族人民的母语。学习苗族语言不仅可以更好地了解苗族文化,还可以促进民族团结和交流。以下是一些学习苗族语言的方法和建议。一、了解苗族语言的特点和基础知识苗族语言是一种声调语言,有八个声调。苗族语言的语法和词汇与汉语有很大的不同,需要认真学习和掌握。

    [ 2024-07-11 17:54:57 ]