汇编中的10H中断是由BIOS对显示器和屏幕所提供的服务程序。使用int 10h服务程序时,必须先指定ah寄存器为以下显示服务编号之一,以指定需要调用的功用。

1 显示字符串小程序

先运行一个int 10h显示字符串的程序;

DATA SEGMENTOUT1 DB 'ABCDE'COUNT = $ - OUT1
DATA ENDS
CODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA
START:MOV AX,DATAMOV ES,AXMOV DS,AXMOV AX,0600H ;清屏MOV BH,07HMOV CX,0MOV DX,184FHINT 10hMOV AX,0200H    ;移动光标到0,0MOV BH,0MOV DX,0INT 10HMOV AX,1300H    ;显示字符串MOV BX,0002HMOV CH,0MOV CL,COUNTMOV DX,0LEA BP,OUT1INT 10hMOV AX,4C00HINT 21H
CODE ENDSEND START

2 子功能01H

功能描述:设置 光标形状

入口参数:AH=01H

CH低四位=光标的起始行

CL低四位=光标的终止行

mov ch,0
mov cl,3
mov ah,01h
int 10h

运行如下;屏幕看不到什么;可能仿真屏幕不太支持光标;

3 子功能 08H

功能描述:读光标处的字符及其属性

入口参数:AH=08H

BH=显示页码

出口参数:AH=属性

AL=字 符

mov ah,08h
mov bh,0
int 10h

运行如下;返回值在AX; AL是字符;现在光标处没有字符;AH=07不知道代表啥属性;

4 子功能0CH

功能描述:写图形象素

入口参 数:AH=0CH

AL=象素值

BH=页码

(CX、DX)=图形坐标列(X)、行(Y)

出口参数:无

首先运行如下代码;提示:没有图形模式;需要先设置图形模式,才能写像素;

ah=00h是设置显示器模式;al = 0DH,  设置 320×200 16色;

再运行如下代码;提示:仿真屏幕不支持 0Dh 的模式;提示使用13h 设置图形模式;

13H:640×480 256色;使用 al = 13h 设置;再运行;不出错,但是屏幕啥也没有;

还需要用cx和dx设置图形模式下x和y坐标,再写像素点;

设置x和y坐标为(50, 50),再运行;如下;屏幕上比较靠左上角出来一个小点;

mov ah,00h
mov al,13h
int 10h mov ah,0ch
mov al,3
mov bh,0
mov cx,50
mov dx,50
int 10h

5 子功能02H

功能描述:用文本坐标下设置光标位置

入口参数:AH=02H

BH=显示页码

DH=行(Y坐标)

DL= 列(X坐标)

出口参数:无

把第一个程序设置光标位置的代码改为如下;

MOV AX,0200H    ;移动光标到0,0
MOV BH,0
MOV DX,33
INT 10H

把 MOV DX,0 改为 MOV DX,33;DX值变了,输出字符串位置应该改变;再运行;显示和第一个程序一样;不知道哪儿不对;下回再整;

利用emu8086学习汇编int 10h功能相关推荐

  1. 汇编--INT 10H功能

    汇编–INT 10H功能 INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中 ...

  2. 汇编 INT 10H功能

    INT 10H 是由 BIOS 对屏幕及显示器所提供的服务程序,而后倚天公司针对倚天中文提供了许多服务程序,这些服务程序也加挂在 INT 10H 内.使用 INT 10H 中断服务程序时,先指定 AH ...

  3. 使用emu8086学习汇编 int 21h 指令

    INT 21H是DOS的中断调用,根据AH的值执行不同的功能: 在emu8086看一下: 单独输入一条指令: 进入仿真: 看一下程序代码,也就是用户程序,是存储在内存地址的01000.01001: R ...

  4. 使用EMU8086学习汇编

    使用EMU8086学习汇编 软件下载地址 https://en.softonic.com/download/emu8086-microprocessor-emulator/windows/post-d ...

  5. 汇编 int 10h

    汇编中的10H中断是由BIOS对显示器和屏幕所提供的服务程序.使用int 10h服务程序时,必须先指定ah寄存器为以下显示服务编号之一,以指定需要调用的功用. 显示服务 (Video Service: ...

  6. 16位汇编 int 10h和int 21h 显示字符串实例

    int 10h 的9号功能是显示字符串 assume cs:codecode segmentstart:mov ah,2 ;置光标mov bh,0 ;第0页mov dh,1 ;dh中放行号mov dl ...

  7. 使用emu8086学习汇编mov指令

    1 将立即数复制到寄存器 运行如下: 2 寄存器到寄存器之间传数 3 通用寄存器与段寄存器之间传数 AX是通用:ES是附加段寄存器,Extra Segment: 4 直接寻址 运行之后,定位到内存偏移 ...

  8. c语言里10h代表什么,汇编中的10H中断int 10h详细说明

    汇编中的10H中断是由BIOS对显示器和屏幕所提供的服务程序.使用int 10h服务程序时,必须先指定ah寄存器为以下显示服务编号之一,以指定需要调用的功用. 显示服务 (Video Service: ...

  9. 【PHP学习】—利用ajax原理实现密码修改功能(九)

    [PHP学习]-利用ajax原理实现密码修改功能(九)

最新文章

  1. 理解为何用期望最大化或梯度下降等启发式方法处理非凸函数在实际中如此有效,对于理论计算机科学而言是一大挑战
  2. 【原创】DevExpress控件GridControl中的布局详解
  3. 基于Spring Boot和Spring Cloud实现微服务架构学习--转
  4. 数据挖掘、生信、meta?临床医生如何选择
  5. JVM调优系列:(三)类加载和执行机制
  6. mysqldump导出数据库视图_mysql数据库的基本操作:索引、视图,导入和导出,备份和恢复...
  7. ASP.NET Core 3.x - 为什么采用新的 Endpoint Routing 路由系统
  8. 漫画:学习中台,看这篇就够了
  9. 【数字图像处理】一种求图像边缘的方法
  10. ExtJs2.0学习系列(15)--extjs换肤
  11. 红橙Darren视频笔记 热更新 bsdiff bspatch 在Android设备上的应用 架构篇1完结篇
  12. CSS 属性篇(四):Flex弹性盒子
  13. Ra2辅助制作(1)
  14. pb 系统托盘实例(定时任务管理)
  15. 学习React基本渲染数据操作(-)
  16. Android C++ Parcel
  17. JS Decorator —— 装饰器(装饰模式)
  18. spring-xxx-xxx-0.0.1-SNAPSHOT.jar中没有主清单属性完美解决
  19. 手推遗传算法(Genetic Algorithm,GA)的详细步骤图解
  20. 关于数字基带信号单、双极性归零与不归零信号中直流分量与定时分量的判断有无的依据

热门文章

  1. 整合mybatis——使用纯注解整合、使用Mapper+Mapper.xml整合、使用mybatis.cfg.xml整合
  2. JavaScript中 var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //邮箱检测
  3. [YTU]_2624( B 结构体--统计投票)
  4. pyrDown和pyrUp函数
  5. VSCode输出框中文乱码问题
  6. 讲解泊松融合文章推荐
  7. jQuery的Ajax初识
  8. MongoDB集群之分片技术应用 —— 学习笔记
  9. 第一次CM--CosH.2
  10. java基础:关键字