首页 > 编程语言 >8086汇编语言基础学习(四)——汇编语言程序设计基础

8086汇编语言基础学习(四)——汇编语言程序设计基础

时间:2023-06-22 14:56:33浏览次数:55  
标签:字符 8086 调用 汇编语言 基础 AL 格式 输入 描述

8086汇编语言基础学习(四)——汇编语言程序设计基础

DOS中常用的系统调用:

1. 单字符输入并显示(01H功能调用)

  • 描述:从键盘输入一个字符的ASCII码送入寄存器AL中,并送显示器显示。如果按下的是Ctrl+Break组合键,则终止程序执行。1号功能调用无须入口参数,出口参数在AL中
  • 格式:

 2. 单字符输入但不显示(08H功能调用)

  • 描述:同01H号功能调用,但字符不在屏幕上显示。
  • 格式:

 3. 在屏幕上显示一个字符(02H功能调用)

  • 描述:将置入DL寄存器中的字符在屏幕上显示输出
  • 格式:

4. 打印输出一个字符(05H功能调用)

  • 描述:将置入DL寄存器中的字符送打印机接口,打印输出
  • 格式:

  • 注意:打印和在屏幕上显示不是一回事

5. 屏幕显示字符串(09H功能调用)

  • 描述:在屏幕上显示字符串
  • 格式:

  • 注意:
    • 待显示的字符串必须先放在内存一数据区(DS段)中,且以‘$’符号作为结束标志。
    • 应当将字符串首地址的段基址和偏移地址分别存入DS和DX寄存器中。

6. 字符串输入(0AH功能调用)

  • 描述:从键盘接收字符,并存放到内存缓冲区
  • 格式: 

  • 注意:
    • ① 执行前先定义一个输入缓冲区,缓冲区内第一个字节定义为允许最多输入的字符个数,字符个数应包括回车符0DH在内,不能为“0”值。第二个字节保留,在执 行程序完毕后存入输入的实际字符个数。从第三个字节开始存入从键盘上接收字符的ASCII码。若实际输入的字符个数少于定义的最大字符个数,则缓冲区其他 单元自动清0。若实际输入的字符个数大于定义的字符个数,其后输入的字符丢弃不用,且响铃示警,一直到输入回车键为止。整个缓冲区的长度等于最大字符个数 再加2。
    • ② 应当将缓冲区首地址的段基址和偏移地址分别存入DS和DX寄存器中。

7. 返回DOS操作系统(4CH功能调用)

  • 描述:终止当前程序的运行,将控制权交还给DOS操作系统,屏幕上开始出现DOS提示符
  • 格式:

8. 直接输入 / 输出单字符(06H功能调用)

  •  描述:执行从键盘输入操作或者向屏幕显示操作,执行那个操作取决于DL的值
  • 格式:

  • 注意:
    • ① 当(DL)=0FFH时,执行键盘输入操作。若标志ZF=0,AL中放入字符的ASCII码;若标志ZF=1,表示无键按下。这种调用用来检测键盘是否有键按下,但不等待键盘输入。
    • ② 当(DL)≠0FFH时,表示将DL中内容送屏幕显示输出。

9. 检查键盘状态(0BH功能调用)

  • 描述:检查键盘是否有被按下,若有则将AL = 0FFH,否则AL = 000H,对于利用键盘操作退出循环或使程序结束之类的操作来说,这种调用是很方便实用的。
  • 格式:

10. 设置系统日期(2BH功能调用)

  • 描述:设置有效的年、月、日,当AL  = 0时,设置成功,当AL = 0FFH时,设置失败
  • 格式:

11. 设置系统时间(2DH功能调用)

  • 描述:设置有效的时间。当AL=0时,设置成功;当AL=0FFH时,设置失败。
  • 格式:

表达式中的运算符:

1. 算术运算符

 2. 逻辑运算符

 3. 关系运算符

 4. 数据返回运算符

 

 5. 属性运算表达式

参考:

本文中的“表达式运算”一节来源于https://www.jianshu.com/p/ff9dd9ea1fc2一文,作者的见解十分到位,故直接搬运用作个人学习之用,侵删。

标签:字符,8086,调用,汇编语言,基础,AL,格式,输入,描述
From: https://www.cnblogs.com/Wu-Ling/p/17497743.html

相关文章

  • 基础知识-关键字
    资料参考2021年计算机组成原理考研复习指导|王道考研【重学计算机】计算机组成原理|cnblogs|闪客sun2021年操作系统考研复习指导|王道考研【重学计算机】计算机操作系统|cnblogs|闪客sun计算机组成原理可以在计算机中直接执行的语言和用助记符编写的语言是(机器......
  • 宋红康-Java基础复习笔记详细版
    Java基础复习笔记第01章:Java语言概述1.Java基础学习的章节划分第1阶段:Java基本语法Java语言概述、Java的变量与进制、运算符、流程控制语句(条件判断、循环结构)、break\continue、IDEA开发工具的使用、数组第2阶段:面向对象编程(基础、进阶、高级)第3阶段:Java高级应用异常......
  • Android NDK 开发基础:C 语言的内存管理
    简介C语言的内存管理,分成两部分。一部分是系统管理的,另一部分是用户手动管理的。系统管理的内存,主要是函数内部的变量(局部变量)。这部分变量在函数运行时进入内存,函数运行结束后自动从内存卸载。这些变量存放的区域称为”栈“(stack),”栈“所在的内存是系统自动管理的。用户手动管理......
  • 基础的框架漏洞 6
    一、log4j远程代码执行漏洞原理:Log4j是Apache的一个开源项目,是一款基于Java的开源日志记录工具。该漏洞主要是由于日志在打印时当遇到~$后,以:号作为分割,将表达式内容分割成两部分,前面一部分prefix,后面部分作为key,然后通过prefix去找对应的iookup,通过对应的lookup实例调用lookup......
  • Kotlin协程:Flow基础原理
    本文分析示例代码如下:launch(Dispatchers.Main){flow{emit(1)emit(2)}.collect{delay(1000)withContext(Dispatchers.IO){Log.d("liduo","$it")}Log.d("liduo",&......
  • Android 屏幕适配基础
    Pixels和dp、sp的区别不同屏幕密度下,1p显示的物理长度不同1dp在不同屏幕上显示相同的物理长度sp只用在字体上,和dp一样为了让在不同设备上有一致的显示效果单位尺寸搞清楚屏幕的各种单位含义,是屏幕适配的基础屏幕尺寸含义:手机对角线的物理尺寸单位:英寸(inch),1英寸=2.54cm屏幕尺寸......
  • 基础算法:二分,贪心等 学习笔记
    普及组基础算法这些都是零零散散接触过的基础算法,写个笔记把这些整理到一起来。线性降维技巧之前在学校洛谷团队里看到一个题单,觉得这些技巧可能有用,就转存了。前缀和差分前缀和是一种对区间求和问题进行降维的方法。具体地,对于给定数组\(A[n]\),求出\(A[l,r]\)区间和这个......
  • 【技术积累】Vue.js中的基础概念与语法【一】
    写在前面学习Vue之前最好有前端三驾马车的基础【HTML+CSS+JavaScript】笔者接了一个从头开发的Vue项目,由于公司急着要,没有时间慢慢像在学校里学了,只能边学边做,现在项目雏形已经做的差不多了,因此正好以自己的方式来写笔记笔者接项目的时候Vue零基础,前端基础也是除了div几个标签......
  • 汇编语言(王爽)实验9
    编程:在屏幕中间分别显示绿色、绿底红色、白底蓝色的字符串'welcometomasm!'。【解析】先将字符属性存在dx寄存器的高八位dh中,再将字符的ASCII码存在dx寄存器的低八位dl中,然后将dx写入显存中。使用两层循环,内层将ASCII码存入dl并将dx写入显存,循环16次;外层改变属性,循环3次。用......
  • 【python基础】类
    类是Python重要的知识点,现将学习目录整理如下:1.类-初识类2.类-类属性3.类-继承4.类-模块......