1楼:莫名
单片机中 没有相等就跳转
的指令其实,cjne实际上也实现了相等跳转的功能的:
cjne a,#data,rel ;如果不等跳到rel指令a ;如果等就执行下一条指令 指令a...rel:指令b
...假如有一条相等就跳转的指令cje(实际上没有)cje a,#data,rel ;相等跳到rel指令b ;不等跳到指令b
...rel:指令a
...上面两个功能完全一样,所以没必要加一条相等就跳转的指令cje 。
相等跳转可以用:
1:cjne
2:一楼的 两数相减,为0则相等。但cmp比较指令是微机的单片机没有此指令,用subb的话原数被改变,要先保护。
3:两数异或
xrl a,#data
jz rel ;结果为0跳到rel
用2/3的话注意:要用到a
jz rel ; a中的数为0,跳转到rel
2楼:匿名用户
先用cmp指令,再用je或jz判断是否为0
3楼:匿名用户
在下面加一条jmp指令;用逻辑运算,然后jz;cjne然后用jc
4楼:做而论道
在cjne的下边,使用ljmp,即可。
……cjne , , label1 ;不等转移到label1
ljmp label2 ;相等转移到label2……
汇编语言问题 5
5楼:山水阿锐
单片机中 没有相等就跳转的指令
其实,cjne实际上也实现了相等跳转的功能的:
cjne a,#data,rel ;如果不等跳到rel指令a ;如果等就执行下一条指令 指令a...rel:指令b
...假如有一条相等就跳转的指令cje(实际上没有)cje a,#data,rel ;相等跳到rel指令b ;不等跳到指令b
...rel:指令a
...上面两个功能完全一样,所以没必要加一条相等就跳转的指令cje 。
相等跳转可以用:
1:cjne
2:一楼的 两数相减,为0则相等。但cmp比较指令是微机的单片机没有此指令,用subb的话原数被改变,要先保护。
3:两数异或
xrl a,#data
jz rel ;结果为0跳到rel
用2/3的话注意:要用到a
jz rel ; a中的数为0,跳转到rel.
6楼:做而论道
三个无符号单字节数x,y,z...
这些数,事先,也应该存在某几个存储单元中。
7楼:智翊端秋颖
这几道题目网上就有答案和解析
,顺序不一样
一、能够将ax中的内容送到内存0000:0200h处的指令序列是3。
1、mov
ds,0
movbx,200h
mov[bx],ax
2、mov
ax,200h
movds,ax
movbx,0
mov[bx],ax
3、mov
ax,20h
movds,ax
movbx,0
mov[bx],ax
4、mov
bx,20h
movds,bx
movbx,0
mov[bx],ax
解析:答案1明显错误了,不能将立即数送入段寄存器;答案2也不对,将200送入ax,mov
ax,ds明显将此时的地址设置为0200:0000,物理地址为2000,和0000:0200的的物理地址不一致;答案3因为题目要求将ax值送入内存,而它一开始就改变了ax的值,所以不对;答案4正确,用bx来暂存数据
二、下列说法正确的是:4。
1、数据段和**段的段地址不能相同。
2、指令mov
ax,bx执行完后bx中的值为零。
3、一个栈段的大小可以设为任意值。
4、当sp=0时,再次压栈将发生栈顶超界,但压栈操作有效。
解析:答案1错误,因为所谓的段,不过是人为安排的,对于计算机来说,指令和数据没有任何区别,地址可以相同;答案2错误,mov指令,是不情况原寄存器里面的值的;答案3也不对,栈段须有一个段地址,段地址不能变,只有偏移地址可以变,这个大小是有范围的;答案4正确,sp=0时,压榨,sp=sp-2,产生了超界
三、下列指令的书写正确的是:3。
1、push
al2、
movcs:[0],ds:[10]
3、pop
si4、
movds:[0],2
解析:答案1错误,压堆指令一次性操作一个字;答案2错误,内存空间之间不能互相传送;答案3正确;答案4错误,不能将立即数送入内存空间
四、能够只将al中的内容压入栈的指令序列是3。
1、push
al2、
popax
3、mov
ah,0
push
ax4、
movax,0
push
ax解析:答案1错误,push操作单位是字;答案2错误,题目要求的是入堆;答案3正确,先将ah清零,然后压入ax可以达到目的;答案4错误,将ax清空,然后压入,等于压入的是0
五、若将以1000h为段地址的整个段空间当作栈使用,那么寄存器sp的初始值最合理的设置是1。
1、0000h
2、0001h
3、ffffh
4、fffeh
解析:以1000h为段地址的整个段空间,偏移地址为0-
ffffh,当栈中只有1个字时,偏移地址是fffeh,当栈为空时,sp=sp+2=ffff+2=0000,所以选择1
六、在8086cpu系统中一个栈段的容量最大为3。
1、1kb
2、512kb
3、64kb
4、32gb
解析:由于8086cpu寄存器只有16位,而sp等寄存器最大变化范围就只能为0~ffffh,即64kb了…不仅仅是栈段,所有的8086cpu里面的段都不能超越64kb
求解一道题关于汇编语言的题,求解一道题关于汇编语言的题 20
1楼 匿名用户 eeeeeeeeeeeeeeeeeeeeeeee 求解一道汇编语言的题 2楼 匿名用户 栈顶的三个字,自地址比较大的开始,向地址比较小的方向看 ,分别是psw,断点 cs,ip ,即0240,0900,00a2 ss的内容不变,还是0300,sp的是原内容 6,即 0100h 6 0...
汇编语言中什么是压栈出栈,汇编语言中的栈,压栈,出栈是什么意思
1楼 匿名用户 栈是一种线性数据结构,它遵循后进先出的顺序。有一个指针总指向栈顶。打个比方 一个栈就相当于一个桶,入栈就是向里面装东西,先装的在下面后装的在上面,装一个指针就会加1,指向新装的东西,出栈就相当于取出东西,只有先取上面的,再取下面的,当取一个后指针就会减一,即指针始终指向桶里最上面那个...
汇编语言中的offset什么意思
1楼 戰为瘸子六 1 offset是将数值回送变量或标号的偏移地址值 2 lea是将数值回送变量或标号的有效地址值 3 seg 汇编程序将回送变量或标号的段地址值 4 lea bx list 5 mov bx offset list6 可以看出,lea和offset这两条指令在功能上是相同的,bx寄...