汇编语言问题汇编语言问题5

2021-03-07 18:06:34 字数 3088 阅读 2225

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寄...