几个简单的汇编问题~~

本人菜鸟,初学汇编,有几个简单的问题不懂:1、写出把首地址为table的字数组的第5个字送到DX寄存器的指令。要求使用以下几种寻子方式:(1)寄存器间接寻址(2)寄存器相... 本人菜鸟,初学汇编,有几个简单的问题不懂:
1、写出把首地址为table的字数组的第5个字送到DX寄存器的指令。要求使用以下几种寻子方式:
(1)寄存器间接寻址
(2)寄存器相对寻址
(3)基址变址寻址
2、写出执行以下计算的指令序列,其中X、Y、Z、W均为存放16位带符号数单元地址。
Z<--(W-X)/(5*Y)*2
3、实模式下,(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464H,以下程序段:
LEA SI,[SI] (拜托解释下,这句什么意思,想了很久~~)
MOV AX,[SI]
MOV [SI+22H],1200H
LDS SI,[SI+20H] (还有这句)
ADD AX,[SI]
执行后,(DS)=_____,(SI)=_____,(AX)=____
4、编制程序段:
(1)把标志寄存器中符号位SF置1.
(2)用一条指令把CX中的整数转变为奇数。
请高手解答,不胜感激!
展开
 我来答
鲲鹏展翅LHY
2008-10-05 · TA获得超过2637个赞
知道小有建树答主
回答量:642
采纳率:0%
帮助的人:1000万
展开全部
1、
(1)寄存器间接寻址
lea bx,table
add bx,8
mov dx,[bx]
(2)寄存器相对寻址
lea bx,table
mov dx,[bx+8]
(3)基址变址寻址
lea bx,table
mov si,8
mov dx,[bx][si]
2、
Z<--(W-X)/(5*Y)*2
mov ax,w
sub ax,x
mov bx,2
imul bx
push dx
push ax
mov ax,5
mul y
mov bx,ax
pop ax
pop dx
div bx
mov z,ax
3、
LEA SI,[SI] (将SI所指向单元的偏移地址送给SI,即(SI)=124h)
MOV AX,[SI](将DS:SI所指向单元(12464H)的内容送给AX,即(AX)=30ABh)
MOV [SI+22H],1200H(将立即数1200H送DS:[SI+22H]所指向单元(12486H)中,即(12486H)=1200h)
LDS SI,[SI+20H] (将DS:[SI+20H]所指向单元(12484H)中的内容送给SI,即(SI)=464h;将(12486H)中的内容送给DS,即(DS)=1200H)
ADD AX,[SI] (将DS:[SIH]所指向单元(12464H)中的内容加到AX中,即(AX)=30ABH+30ABH=6157H,
执行后,(DS)=1200H,(SI)=464H,(AX)=6157H
4、
(1)把标志寄存器中符号位SF置1.
LAHF
OR AH,40H
SAHF
(2)用一条指令把CX中的整数转变为奇数。
OR CX,1
创作者mUuHE4l2zy
2020-04-05 · TA获得超过3835个赞
知道大有可为答主
回答量:3108
采纳率:25%
帮助的人:215万
展开全部
JNZ
P3.2,
$
;
51
没有这条指令
JNB
P3.2,
$
;
应该用这条
低电平等待
高电平往下执行
JB
P3.2,
$
;
这条是
高电平等待
低电平往下执行
ORG
0000H
;
其实
设置中断程序这样就可以了
LJMP
MAIN
ORG
0003H
LJMP
INT
MAIN:SETB
EA
SETB
EX0
SETB
IT0
SETB
P0.0
SJMP
$
INT:
CPL
P0.0
;
其实
中断程序这样就可以了
RETI
END
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式