微机原理与汇编语言

利用74LS244作为输入接口(端口地址:01F2)连接8个开关K0~K7,用74LS273作为输出接口(端口地址:01F3H)连接8个发光二极管。编写程序实现下述功能的... 利用74LS244作为输入接口(端口地址:01F2)连接8个开关K0~K7,用74LS273作为输出接口(端口地址:01F3H)连接8个发光二极管。
编写程序实现下述功能的程序段:
(1) 若8个开关K7~K0全部闭合,则使8个发光二极管亮;
(2) 若开关高4位(K7~K4)全部闭合,则使连接到74LS273高4位的发光量亮;
(3) 若开关低4位(K7~K4)闭合,则使连接到74LS273低4位的发光量亮
(4) 其他情况,不做任何处理.

程序:
START: MOV DX,01F2H
IN AL, DX
CMP AL, 0H
MOV AL 0FFH
JZ DISP
TEST AL,0F0H
MOV AL 0F0H
JZ DISP
TEST AL 0FH
MOV AL 0FH
JZ DISP
JMP START
DISP: MOV DX ,01F3H
OUT DX , AL
JMP START
请问这段程序写的对么?还有为什么START和DISP最后是JMP START为什么不写成JMP STOP呢?如果START和DISP最后写成JMP STOP可以么?请高手帮我解答一下谢谢
展开
 我来答
zzc880808
推荐于2016-11-12 · TA获得超过214个赞
知道答主
回答量:53
采纳率:0%
帮助的人:0
展开全部
JMP START 就是一个死循环呗,跳转到START那句,为的是可以多次读取开关的状态。你要是想让这个程序执行一次就退出当然也可以跳转到别的地方, 但是你没有定义STOP, 就没办法JMP了.
我估计你是不是把START这个标号理解成别的什么东西了,在这里START就是个标号,代表那句“MOV DX,01F2H”的地址,没有什么别的意思, 并不是你所理解的"程序开始".
程序写的肯定不对,问题很大,没有原题没法改,最起码你第一次IN之后得把AL保存一下吧,或者每次TEST AL之前重新IN一下,要不AL都让你给改了,你TEST它有什么用啊?
之所以说没有原题没法改是因为如下原因:
一 不知道开关Ki闭合对应的是0还是1, 你的程序把我搞糊涂了.
二 不知道你所谓的"其他情况,不做任何处理" 是 真的什么都不做 还是 让二极管全都不发光
三 假设开关闭合为1, 那如果开关状态是11111010的话, 我是应该让高四位的二极管发光呢还是什么都不做呢? 按照我对题目的理解好像应该是让高四位发光, 如果这样的话, 楼上 zsq0325 同学的程序就有问题了, 用CMP是不行的.
bqnsm72
2011-01-15 · TA获得超过615个赞
知道答主
回答量:402
采纳率:100%
帮助的人:292万
展开全部
不知道你是问微机(cpu)与汇编语言的关系还是微机原理这门课程跟汇编语言的关系。
前者:cpu是靠执行二进制机器代码来工作的,也就是控制微机可以考000000这样的二进制代码,但是考虑到这样的指令代码难以记住,程序可读性很差,不是专业人才基本不用掌握这种,于是又有了汇编,汇编是一种高级语言,但是对于其他高级来说是低级语言,它其实是与二进制指令相映射的,而汇编标识符易于记忆,程序可读性好,而且学会汇编编程,能够很好掌握CPU内部结构等,但是不同的CPU有不同的指令。
后者:微机原理是一门课程,一般就讲数制基础知识,CPU硬件结构,对应汇编语言,汇编程序编程结构,还有存储器啊,I/O,外围芯片等,所以,汇编语言其实只是微机原理这么课程的一部分,它是人与CPU沟通的媒介,学会汇编语言或者其他高级语言才能操作CPU吧
不知道满意否,你可以自己组织一下下,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
强队2
2015-12-25 · TA获得超过5636个赞
知道大有可为答主
回答量:2365
采纳率:76%
帮助的人:342万
展开全部
《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求考生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。[1]
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。
汇编语言不像其他大多数的程序设计语言一样被广泛用于程序设计。在今天的实际应用中,它通常被应用在底层,硬件操作和高要求的程序优化的场合。驱动程序、嵌入式操作系统和实时运行程序都需要汇编语言。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
113229917
2011-01-15 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:178万
展开全部
STRAT是标签啊 所以可以jmp 没有STOP这个标签 所以你编译的时候不会通过的

jmp START 这是又跳转的首部了 这个就是无限循环了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2022-04-01 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

用74LS244作为输入接口(端口地址:01F2H)连接8个开关K0~K7,

用74LS273作为输出接口(端口地址:01F3H)连接8个发光二极管。

编写程序实现下述功能的程序段:

(1) 若8个开关K7~K0全部闭合,则使8个发光二极管亮;

(2) 若开关高4位(K7~K4)全部闭合,则使连接到74LS273高4位的发光量亮;

(3) 若开关低4位(K7~K4)闭合,则使连接到74LS273低4位的发光量亮;

(4) 其他情况,不做任何处理。

--------------------------------
程序如下:

START: 

  MOV DX, 01F2H

  IN AL, DX   ;读入开关状态

  MOV BL, AL  ;保存

  CMP AL, 0   ;全按下?

  JZ  DISP1   ;去输出全亮

  AND AL, 0F0H ;保留高四位

  CMP AL, 0F0H ;高四位全按下?

  JZ  DISP2   ;去输出高四位亮

  MOV AL, BL  ;恢复数据

  AND AL, 0FH ;保留低四位

  CMP AL, 0FH ;低四位全按下?

  JZ  DISP3   ;去输出低四位亮

  JMP START   ;其他情况,不做任何处理

DISP1:

  MOV AL,  0  ;全亮

  JMP DISP   ;去显示

DISP2:

  MOV AL,  0FH ;高四位亮

  JMP DISP   ;去显示

DISP2:

  MOV AL,  0F0H ;低四位亮

DISP:

  MOV DX, 01F3H

  OUT DX, AL  ;输出显示

  JMP START   ;显示完成,重新去检测

END

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式