给大家出点初级的题算算

adminddd 2003-10-19 07:25:32
要求:用移位指令和加法指令实现将字节数据X乘以30,结果存入Y单元(Y的数据类型自定义)

...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
adminddd 2003-10-21
  • 打赏
  • 举报
回复
这是我编的答案参考参考

Y DB ?
MOV AL,X 把X传给AL
SHL AL,1 现在是2倍X
MOV BL,AL 传给BL 现在BL和AL里都是2倍X
SHL BL,1 在把BL左移1位变成4倍X
ADD AL,BL 相加 现在AL是6倍X
SHL BL,1 BL现在是8倍X
ADD AL,BL 现在AL是14倍X
SHL BL,1 BL现在是16倍X
ADD AL,BL 现在AL是30倍X
MOV Y,AL 把结果传送给Y
现在已经完成X*30请大家看看也请高手指教
163lzm 2003-10-20
  • 打赏
  • 举报
回复
to: csdsjkk()
不对啊,masm通不过啊?
大家找找原因好吗?

DATA SEGMENT
x db 3
y dw ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
mov al,x
mov ah,0
mov dx,ax
mov cl,5
shl ax,cl
shl dx,1
neg dx
add ax,dx
mov y,ax

;mov bx,40h
;mov es,bx
;mov es:[04],ax

MOV AH,09
INT 21H

CODE ENDS
END START
administractor 2003-10-20
  • 打赏
  • 举报
回复
MOV AL,X
MOV AH,0
MOV DX,0
SHL AX,1
ADD Y,AX
SHL AX,1
ADD Y,AX
SHL AX,1
ADD Y,AX
SHL AX,1
ADD Y,AX
;这不是还没有二楼的好
adminddd 2003-10-20
  • 打赏
  • 举报
回复
呵呵不好意思只能用加法和移位指令
给你们点提示 30X=16X+8X+4X+2X
bluedreammer 2003-10-20
  • 打赏
  • 举报
回复

樓上的算法32x-2x=30x實現,非常清楚了
題目要求用加法和移位,neg算不算呢?
csdsjkk 2003-10-19
  • 打赏
  • 举报
回复
mov al,x
mov ah,0
mov dx,ax
mov cl,5
shl ax,cl
shl dx,1
neg dx
add ax,dx
mov y,ax

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧