微机原理编程题Z=(6X+2Y)/2,X=65H,Y=15H,用算术移位法 急急急!!!
MOVAX,0065HMOVBX,0015HSALAX,1MOVDX,AXMOVCL,2SALAX,CLSUBAX,DXSALBX,1ADDAX,BXSARAX,1HLT...
MOV AX,0065H
MOV BX,0015H
SAL AX,1
MOV DX,AX
MOV CL,2
SAL AX,CL
SUB AX,DX
SAL BX,1
ADD AX,BX
SAR AX,1
HLT
哪错了? 展开
MOV BX,0015H
SAL AX,1
MOV DX,AX
MOV CL,2
SAL AX,CL
SUB AX,DX
SAL BX,1
ADD AX,BX
SAR AX,1
HLT
哪错了? 展开
3个回答
展开全部
mov ax,0065h ;x放到ax中
mov cl,3
shl ax,cl ;ax*8,也就是左移3位
mov bx,0065h ;x放到bx中
shl bx,1 ;bx*2,也就是左移1位
sub ax,bx ;ax减bx,得到x*6
mov bx,0015h ;y放到bx中
shl bx,1 ;bx左移一位,也就是y*2
add ax,bx ;两数相加
shr ax,1 ;右移一位,也就是除2
;;结果就在ax中,还有这题算出来结果没有余数,就没取余数了
-------------------------------------------------------------------------------
MOV AX,0065H
MOV BX,0015H
SAL AX,1
MOV DX,AX
MOV CL,2
SAL AX,CL
SUB AX,DX ;;;;sub改成add
SAL BX,1
ADD AX,BX
SAR AX,1
HLT
mov cl,3
shl ax,cl ;ax*8,也就是左移3位
mov bx,0065h ;x放到bx中
shl bx,1 ;bx*2,也就是左移1位
sub ax,bx ;ax减bx,得到x*6
mov bx,0015h ;y放到bx中
shl bx,1 ;bx左移一位,也就是y*2
add ax,bx ;两数相加
shr ax,1 ;右移一位,也就是除2
;;结果就在ax中,还有这题算出来结果没有余数,就没取余数了
-------------------------------------------------------------------------------
MOV AX,0065H
MOV BX,0015H
SAL AX,1
MOV DX,AX
MOV CL,2
SAL AX,CL
SUB AX,DX ;;;;sub改成add
SAL BX,1
ADD AX,BX
SAR AX,1
HLT
展开全部
逻辑关系没有错,移位代码写错了。SAL和SAR应该是:SHL和SHR.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SHR是逻辑右移,数据往右移动,在左边补零。如:1000 0000->0010 0000(逻辑右移两位)
SAR是算术右移,比较特殊。他的最高位一直是不变的。如1000 0000算术右移7位后就成了1111 1111.
应该用shr
SAR是算术右移,比较特殊。他的最高位一直是不变的。如1000 0000算术右移7位后就成了1111 1111.
应该用shr
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询