汇编语言问题

汇编语言要求源和目的操作数位宽一样,MOVAX,2000H是不是说立即数2000H是16位呢MOVAX,20H对吗?MOVAL,2000H对吗?AL是8位的。... 汇编语言要求源和目的操作数位宽一样,MOV AX,2000H 是不是说立即数2000H是16位呢 MOV AX,20H 对吗? MOV AL,2000H对吗?AL是8位的。 展开
 我来答
pig05121
2010-10-30 · TA获得超过599个赞
知道小有建树答主
回答量:234
采纳率:50%
帮助的人:144万
展开全部
传送指令的位宽,如果有寄存器,由寄存器决定;没有寄存器,由内存单元决定;
MOV AX,2000H是把2000H送入AX,AX是16位寄存器,能储存2000H这个数据,所以指令正确。
MOV AX,20H同上,也正确。
MOV AL,2000H是把2000H送入AL,AL是8位寄存器,不能储存2000H这个数据,所以指令错误。
ssat72
2010-11-02 · TA获得超过434个赞
知道答主
回答量:514
采纳率:100%
帮助的人:279万
展开全部
单片机中 没有相等就跳转的指令
其实,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
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arvi21
2010-11-10 · TA获得超过509个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:214万
展开全部
说明:本程序假设BUFFER单元存放的10个8位数是8位无符号二进制数。

; 本程序通过编译,运行正确。
Code Segment
Assume CS:Code,DS:Code

BUFFER db 12,26,87,253,198,113,99,75,61,51
MIN db ?
MAX db ?

Start: push cs
pop ds
push cs
pop es ;使数据段、附加段与代码段同段

; 找出其中的最大值及最小值
cld
lea si,BUFFER
lodsb ;将第一个元素读入AL
mov ah,al ;AH=最大值,AL=最小值
mov cx,9
Compare: cmp al,[si] ;当前最小值与当前元素比较
jbe $+4 ;若小于或等于,不更新最小值,转去与最大值比较
mov al,[si] ;当前最小值大于当前元素,装入新的最小值
cmp ah,[si] ;当前最大值与当前元素比较
jae $+4 ;若大于或等于,不更新最大值
mov ah,[si] ;当前最大值小于当前元素,装入新的最大值
inc si ;增1,准备处理下一个字母
loop Compare
mov word ptr MIN,ax ;保存最大值和最小值

Exit_Proc: mov ah,4ch ;结束程序
int 21h

Code ENDS
END Start ;编译到此结束
请参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式