汇编实验5 DOS、BIOS调用
2021/11/11 1:11:46
本文主要是介绍汇编实验5 DOS、BIOS调用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
DOS、BIOS调用
实验目的
- 学习掌握DOS、BOIS调用方法
- 学会编制实用小程序
实验内容
编一程序,将这些ASCII码表示的字符以16行16列的表格形式显示出来,要求显示时按ASCII码的递增顺序分行显示(即行内ASCII码依次递增,与ASCII表中给出的表格行、列位置正好倒置)。每行、相邻的两字符间由空白符(ASCII码00)或空格(ASCII码20H)分开,只要求显示出字符,不要画出表格线。
实验代码
dos调用
CRLF MACRO MOV DL,0DH MOV Ah,02H INT 21H MOV DL,0AH MOV AH,02H INT 21H ENDM ;定义宏功能用于换行 data segment data ends stack segment stack 'stack' STA db 128 dup(?) TOP EQU LENGTH STA stack ends code segment ASSUME cs:code,ds:data,ss:stack START:;初始化相关寄存器 mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,TOP mov bl,0;bl中存放要打印字符的ASCII码 mov cx,16;设置外层循环次数,即行数 outer: push cx mov cx,16;设置内层循环次数,即列数 inner: cmp bl,0AH;判断是否为换行符 jz change cmp bl,0DH;判断是否为回车符 jz change mov dl,bl;将bl->dl用于显示 show: mov ah,2 int 21H;调用dos21h中断的2号子功能输出字符 mov dl,0 int 21H;输出空格间隔 inc bl;下一个字符ascii码 loop inner CRLF;宏换行 pop cx loop outer mov ax,4C00H;退出程序 int 21H change:;若为特殊字符则将其替换为0 mov dl,0 jmp show code ends end START
bios调用
data segment data ends stack segment stack 'stack' STA db 128 dup(?) TOP EQU LENGTH STA stack ends code segment ASSUME cs:code,ds:data,ss:stack START:;初始化相关寄存器 mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,TOP call CleanScreen;调用子程序清空屏幕 mov bl,0;bl中存放要打印字符的ASCII码 mov dh,0;设置行号 outer: mov dl,0;设置列号 inner: mov ah,02H int 10H;调用bios中断设置光标位置 cmp bl,0AH;判断是否为换行符 jz change cmp bl,0DH;判断是否为回车符 jz change mov al,bl;将bl->al用于显示 show: mov cl,1;设置输出字符字数 mov ah,0AH int 10H;调用bios中断输出字符 inc dl;列号+1 inc bl;下一个字符ascii码 mov ah,02H int 10H mov al,0 mov ah,0AH int 10H;输出空格间隔 inc dl;列号+1 cmp dl,32;判断一列是否完成 jnz inner inc dh cmp dh,16;判断行数是否达标 jnz outer mov ax,4C00H int 21H;结束程序 change:;若为特殊字符则将其替换为0 mov al,0 jmp show ;CleanScreen清空屏幕,便于输出 CleanScreen PROC ;保存现场 push bx push cx push dx push es mov bx,0b800h mov es,bx mov bx,0 mov dx,0700h mov cx,2000 clearScreen: mov es:[bx],dx add bx,2 loop clearScreen ;恢复现场 pop es pop cx pop dx pop bx ret CleanScreen ENDP code ends end START
运行结果
dos调用
bios调用
这篇关于汇编实验5 DOS、BIOS调用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12Axios库资料:新手入门必读教程
- 2024-11-11Axios库项目实战:新手入门教程
- 2024-09-29Axios库教程:初学者必备指南
- 2024-08-29Axios库资料:新手入门指南与基本使用教程
- 2024-03-14system bios shadowed
- 2024-03-14gabios
- 2024-02-07iOS应用提交上架的最新流程
- 2024-02-06打包 iOS 的 IPA 文件
- 2023-12-07uniapp打包iOS应用并通过审核:代码混淆的终极解决方案 ?
- 2023-11-25uniapp IOS从打包到上架流程(详细简单) 原创