我是靠谱客的博主 孤独大地,最近开发中收集的这篇文章主要介绍微机原理与技术接口 实验二 输入输出实验,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

???? 2022.5.12 早八 实验二

实验二 输入输出实验

文章目录

    • 前言
    • 1.1 实验要求
    • 1.2 理论分析
    • 1.3 汇编语言
    • 1.4 实验结果

前言

????本文章是 【微机原理技术接口】 专栏的文章,主要是实验内容
????微机原理技术接口专栏 传送门
????提示:本文的环境是emu8086仿真系统。

1.1 实验要求

熟悉emu8086仿真系统,实现控制台输入输出,实现两位十进制数猜数字游戏(基本要求:输入两位数和预设值比较,对于输出>小于输出<对于输出=并退出)

1.2 理论分析

输入的两位数分别利用DOS 1号输入功能,高位(第一次输入)暂存到DH,低位(第二次输入)放到AL,利用AAD指令,将AX寄存器中非压缩型BCD码转换成为真正的二进制数,并存放在AL,之后用CMP指令与设定的数值比较,之后利用JE、JA判断大小并跳转。

扩展:如果大于或小于,利用DOS 2号功能输出0A(换行)、0D(回车),实现每次输出都换行。

1.3 汇编语言

????提示:所有实验源码已在Github整理

BGN:
MOV AH,1
INT 21H     ;调用DOS 1号输入功能
AND AL,15   ;与运算,将高位清零,假设输入3D=33H,将高位清零
MOV DH,AL   ;第一个数暂存到DH
MOV AH,1
INT 21H     ;调用DOS 1号输入第二个数
AND AL,15   ;高位清零
MOV AH,DH   ;第一个数做为高位给AH,第二个数在AL不变
AAD         ;AAD指令 AL=AH*0AH+AL AH=0.实质上是将AX寄存器中非压缩型BCD码转换成为真正的二进制数,并存放在AL寄存器中
CMP AL,N    ;若大于CF=0,小于CF=1,等于CF=1.ZF=1
JE JEND     ;零标志位ZF=1转移
MOV DL,'>'
JA J1       ;高于或者不低于转移,CF=0
MOV DL,'<' 

J1:    
MOV AH,2 
INT 21H     ;调用2号输出>
JMP BGN     ;猜的结果大/小,继续返回BGN

JEND:
MOV DL,'='
MOV AH,2
INT 21H 
MOV AH,4CH
INT 21H     ;调用DOC 4CH中断程序

N DB 35      ;赋初值,猜的数为十进制35

扩展,每次输出都换行

BGN:
MOV AH,1
INT 21H     ;调用DOS 1号输入功能
AND AL,15   ;与运算,将高位清零,假设输入3D=33H,将高位清零
MOV DH,AL   ;第一个数暂存到DH
MOV AH,1
INT 21H     ;调用DOS 1号输入第二个数
AND AL,15   ;高位清零
MOV AH,DH   ;第一个数做为高位给AH,第二个数在AL不变
AAD         ;AAD指令 AL=AH*0AH+AL AH=0.实质上是将AX寄存器中非压缩型BCD码转换成为真正的二进制数,并存放在AL寄存器中
CMP AL,N    ;若大于CF=0,小于CF=1,等于CF=1.ZF=1
JE JEND     ;零标志位ZF=1转移
MOV DL,'>'
JA J1       ;高于或者不低于转移,CF=0
MOV DL,'<' 

J1:    
MOV AH,2 
INT 21H     ;调用2号输出>
MOV DL,0AH
INT 21H     ;调用2号换行
MOV DL,0DH
INT 21H     ;调用2号回车
JMP BGN     ;猜的结果大/小,继续返回BGN

JEND:
MOV DL,'='
MOV AH,2
INT 21H 
MOV AH,4CH
INT 21H     ;调用DOC 4CH中断程序

N DB 35      ;赋初值,猜的数为十进制35

1.4 实验结果

微机原理与接口技术04

不换行单步运行

微机原理与接口技术02

换行单步运行

微机原理与接口技术03

思考内容

  1. 控制符的显示输出
    控制字符可以使用DOS 2号功能,如本实验的扩展要求,通过查ASCII表,得到换行和回车的十六进制数,保存到DL中,调用DOS INT 21后输出
  2. 类似分支功能有哪些不同指令的实现方法
    无条件转移JMP,条件转移JC/JNC,条件转移指令JZ/JNZ(判断CF位),JZ/JNZ(判断ZF位),JO/JNO(判断OF位),JP/JPE、JNP/JPO(判断PF位),JS/JNS(判断SF位),JA/JAE/JB/JBE(判断CF或CF+ZF位),JG/JGE/JL/JLE(判断SF+OF或SF+OF+ZF)

最后

以上就是孤独大地为你收集整理的微机原理与技术接口 实验二 输入输出实验的全部内容,希望文章能够帮你解决微机原理与技术接口 实验二 输入输出实验所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部