一个汇编语言程序,有一点小问题,希望高手帮我修改下 大学汇编语言题目。 希望有高手帮我解答。谢谢了!

作者&投稿:才旦帜 (若有异议请与网页底部的电邮联系)
;1.修改整体逻辑,可以按任何顺序按下P1.1,P1.2,P1.3
;2.修改原二进制码错误

;P1.0----(B=2秒,Y=5秒,B=2秒,L=2秒),重复4次
;P1.1----L=2秒
;P1.2----(B=2秒,Y=5秒,B=2秒,L=2秒),重复两次

L1: JB P1.1,L3 ;未按P1.0,转判P1.2
MOV R4,#4
L2: MOV P2,#0BFH ;B亮,应为11011111=0DFH
LCALL DELAY
LCALL DELAY ;每次1秒计,应为两次
MOV P2,#0FFH ;可删
MOV P2,#0EFH ;Y亮,正确
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY ;5秒应5次
MOV P2,#0FFH ;可删
MOV P2,#0F7H ;B再次亮,应为0DFH
LCALL DELAY
LCALL DELAY
;原少L亮,现补上
MOV P2,#0BFH ;L亮
LCALL DELAY
LCALL DELAY
DJNZ R4,L2 ;至此程序完成第一阶段
MOV P2,#0FFH ;关闭显示

;判P1.2按下,原文删除,改下文
L3; JB P1.2,L4 ; 若P1.2未按,转判P1.1
MOV R4,#02
AJMP L2 ;借用上段程序

;判P1.1按下
L4: JB P1.1,L1 ;若P1.1未按,转判P1.0
MOV P2,#0BFH ;L亮,2秒
LCALL DELAY
LCALL DELAY
MOV P2,#0FFH ;关闭
AJMP L1 ;返回L2继续判各键是否按下

DELAY: ;定为延时1秒,如果不正确,请调整
MOV R3,#20
K3: MOV R2,#30
K2: MOV R1,#250
K1: NOP
NOP
DJNZ R1,K1
DJNZ R2,K2
DJNZ R3,K3
RET

,1。的整体逻辑可以按任何顺序P1.1,P1.2,P1.3
;原始的二进制代码错误

; P1.0- - (B = 2秒,Y = 5秒,B = 2秒,L = 2秒),重复四次

; P1.1是---- L = 2秒

; P1 。 2 ----(B = 2秒,Y = 5秒,B = 2秒,在L = 2秒),反复两次

L1:JB P1.1,L3的失败P1 0.0,分租P1.2

MOV R4,#4

L2:MOV P2,#0BFH,B点燃11011111 = 0DFH

LCALL DELAY

LCALL DELAY;秒钟的时间,应该是两次

MOV P2,#0FFH;删除

MOV P2,#0EFH; Y-亮起,正确的

LCALL DELAY

LCALL DELAY
> LCALL DELAY

LCALL DELAY

LCALL DELAY; 5秒应该是5

MOV P2,#0FFH;可能会删除

MOV P2,#0F7H; B再次亮,应该是0DFH

LCALL DELAY

LCALL DELAY

以前少大号的,现在补

MOV P2,#0BFH,L亮

LCALL DELAY

LCALL DELAY

DJNZ R4,L2,此时程序来完成第一阶段的

MOV P2,#0FFH;关闭显示

;按句子P1.2,原删除,以下

L3,L4 JB P1.2,P1.2失败分租P1.1

MOV R4,#02

AJMP L2;借用前一段程序...... / a>

;判处P1.1按

L4:JB P1.1,L1;光亮如P1.1没有分租P1.0

MOV P2,#0BFH; L.,2秒

LCALL DELAY

LCALL DELAY

MOV P2,#0FFH;关闭

和AJMP L1回报L2继续被判处每次按键或

BR /> DELAY:为扩展名的,当一秒钟,如果不正确,请调整的

MOV R3,#的

K3的的:MOV R2,#30

K2:MOV R1 ,#250

K1,K3:NOP

NOP

DJNZ R1,K1

DJNZ R2,K2

DJNZ R3
RET的

汇编程序有几个小问题 希望好心人能帮我解答下谢谢~

问题1: xor cx,cx 什么意思
--是 MOV CX, 0 的另一个写法,高手常用。

问题2: MOV cl,str+1 程序里没有用到cl寄存器 问什么要把str+1 送给cl呢
--执行后 CL 中就是实际输入的字符数。
--后面,要用的吧。

问题3:str、和str1 分别用作哪里呢
str用于确定输入字符串中字符的位置
str1用于插入空格吗?
既然是要在转换后的字母后插入空格为什么要用两个寄存器
或者您直接说一下插入空格用的是什么原理可以吗
--具体算法,各人思路不同,
--看别人的程序,往往不好理解。
--你可以自己编一个试试看,也许会更简单。

问题4: call insert ;插入
mov dl,0dh ;回车换行
mov ah,2
int 21h
mov dl,0ah 这段看不太懂
--0DH,是回车符。
--0AH,是换行符。
--在屏幕上,起回车、换行的作用。

哈哈哈~我是中南大学都没见过那本书~

1.不好描述,不过很简单啊。单双引号的作用是一样的,'BYTE'=B,Y,T,E;dup是重复,2 dup(1,2)=1,2,1,2;?就是不初始化
2.PLENTH不可知。譬如mov ax,plenth等同于mov ax,$-PARTNO,指令中的$是使用plenth的指令的首地址,是未知的……

这本书是谁出的,我帮你去打死他

一个汇编语言程序,有一点小问题,希望高手帮我修改下
答:LCALL DELAY DJNZ R4,L2 ;至此程序完成第一阶段 MOV P2,#0FFH ;关闭显示 ;判P1.2按下,原文删除,改下文 L3; JB P1.2,L4 ; 若P1.2未按,转判P1.1 MOV R4,#02 AJMP L2 ;借用上段程序 ;判P1.1按下 L4: JB P1.1,L1 ;若P1.1未按,转判P1.0 MO...

汇编语言里面关于 push mov lea的一点小问题。
答:push 的后面,应该写16位的操作数,可以是寄存器名称,如:push AX push BX ……--- mov eax,[xxx],是把逗号右边,当做源,左边当做目的。80x86 的汇编,都是这样的。其它的汇编语言,也有用左边的当做源。

汇编语言的一些小问题
答:1. 可以。你可以把数据放在任何的段里,例如:代码段、堆栈段。2. 可以。结束命令实际上就是告诉系统我的程序执行完毕,返回调用我的 程序的那个系统函数;所以你可以用POP来表示结束程序。POP EIP 查一下你的系统手册,有可能你要用多条POP来把堆栈上的系统函数的返回值 放入EIP寄存器中。

几个汇编语言问题.高手帮忙解答下..
答:8.MUL -25 ;有错,MUL指令的操作数不能为立即数 9.PUSH 20A0H ;有错,PUSH指令的操作数不能为立即数 10.POP CS ;有错,CS不能作为目的操作数 11.XCHG [SI],3 ;有错,XCHG指令中的操作数不能为立即数 12.MOV IP,AX ;有错,IP不能通过MOV指令改变 13.SUB [SI],[DI];有错,...

汇编语言的一个小问题,大神帮帮我
答:;有以下几个问题:;1、格式不规范。标准的COM文件格式如下所示 ;2、第三行的空,实际上是绝对地址、段地址和偏移地址的换算关系,现在已知绝对地址(200H)和偏移地址(0020H),;求段地址. 显然,段地址=[绝对地址(200H) - 偏移地址(0020H)] / 10h = 1EH ;3、程序中 s:mov al,[bx] ...

8086汇编语言小问题.谢谢
答:1. 'WHAT IS YOU NAME ? $' 1个字符占一个字节,你可以自己数一下。不管你用'a'还是ASK码结果都是ASK码,只是编译器自动将你的'a'转成了ASK码。2.这个问题比较复杂,回车实际上回到行首,而换行是换一行,在不同的操作系统里的规定是不一样的。我给你找一段资料你自己看看,不懂再问。回...

微机原理 汇编语言的小问题
答:AL,30H;比较AL与30H JC L1;AL<30H转到L1 CMP AL,3AH;AL>=30H,则继续与3AH比较 JNC L1;AL<=3AH,则转L1 AND AL,0FH;AL>3AH,保留AL低四位 RET L1: MOV AL,0FFH;AL=FFH RET 你这个没有给出AL初值,无法确定最终结果。这是确定0~9数字的程序。按你的答案,估计AL初值是37H ...

汇编小问题 一个程序要求编制一个程序把BX寄存器内的二进制数用十六进制...
答:首先,要知道两点预备知识:1. EXE程序加载时,DS是指向PSP前缀的。2. PSP前缀总长100H个字节,它最前面偏移地址为0处的第一条代码正是 INT 20H 框架是这样的:MAIN PROC FAR ;这里必须将过程属性定义成远调用,是为了保证最后的RET是远返回 PUSH DS ; 这里入栈的DS,就是PSP的段地址 ...

一个汇编语言的问题,大神请进
答:IF (Interrupt enable)——位9,中断许可标志。控制处理器对可屏蔽硬件中断请求的响应。置1 则开启可屏蔽硬件中断响应,置0 则关闭可屏蔽硬件中断响应。执行int8后,IF标志会由允许中断(EI)变为禁止中断(DI),即由“1”变为“0”。因此,X2XX就变成了X0XX。CPL、IOPL 和控制寄存器CR4 中的...

几个关于汇编语言的问题 急用 谢谢
答:计算机汇编语言中的一种跳转指令.当需要分支程序时,散转程序有时可以帮我们实现。使用指令JMP @A+DPTR,可实现多分支转移。它是根据某种输入或运算的结果,分别转向各个处理程序段取执行程序。JMP 就是跳转到当前的地址, 所以它是一个死循环,不继续执行下面的程序了。JC addr jump if carry:如果有...