菜鸟请教汇编基础问题,都来帮帮忙阿

zc315192303 2009-10-19 12:33:21
1题, 判断如下指令有无语法错误,如果存在语法错误,指出具体的错误原因

(1). PUSH 5588H
(2). MOV DS, 1720H
(3). ADD AX, CL
(4). AND AX, [DX]

2题, 假设(CX)=3000H,(DS)=4000H, (SS)=5000H,(ES)=2000H,(AX)=2060H,(BX)=3000H,(CX)=0005H,(DX)=0,
(SI)=2060H,(DI)=3000H,(43000H)=A006H,(23000H)=0B116H,(33000H)=0F802H,(25060H)=00BOH,
(SP)=0FFFEH, CF=1, DF=1,请写出下列各指令独立执行后,有关寄存器及存储单元的内容,影响条件的,
请给出条件码SF,ZF,OF,CF的值。

(1) CMP AX,WORD PTR[SI+OFAOH]
(2) SAR AX,CL
(3) XOR OFFE7H
(4) JMP WORD PTR[BX]
(5) XCHG AX, ES:[BX+SI]
本人没有接触过汇编,手上也没有相关资料,有好的资料的话给推荐个,谢谢!
...全文
187 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuajuan871207 2009-10-31
  • 打赏
  • 举报
回复
学习ing
huangbo0603 2009-10-28
  • 打赏
  • 举报
回复
到过
aggio 2009-10-28
  • 打赏
  • 举报
回复
恩飘过不会

amloy520 2009-10-28
  • 打赏
  • 举报
回复
这是习题吧。。。
bx8840668 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 j8727 的回复:]
引用 3 楼 b11ght 的回复:
(1). PUSH 5588H      ; 只能是PUSH  r16/m16/seg,不能是立即数 .
(2). MOV  DS,  1720H ;
不能对段寄存器直接赋值,应改写成这样:
MOV AX,1720H
MOV DS,AX
(3). ADD  AX,  CL    ;
CL为8位寄存器,AX为16位寄存器,两个操作数必须位数相同
(4). AND  AX,  [DX]  ;AND dest,src ;dest←dest ∧ src(符号 ∧ 表示逻辑与)AND不能和存储器的内容相与


第4点错误并不是AND操作数不能是寄存器间接寻址方式,AND的规定是:除非源操作数是立即数,至少有一个操作数必须放在寄存器中,另一个操作数则可以使用任意寻址方式。真正的错误在于寄存器间接寻址方式的寄存器不能是DX,换成BX,SP,BP,EDX都可以。
第二题自己用Debug实验下就知道了
[/Quote]........同意。。。寄存器间接寻址操作数有效地址只能在si,di,bx,bp中。。。
nanlingcg 2009-10-27
  • 打赏
  • 举报
回复
1。好象 .286就可以PUSH 立即数。
2。。。。。。。
3。。。。。。。
4。 一,立即数只能作源
二,必须有个操作数在寄存器中
4楼说的很正确
j8727 2009-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 b11ght 的回复:]
(1). PUSH 5588H      ; 只能是PUSH  r16/m16/seg,不能是立即数 .
(2). MOV  DS,  1720H ;
不能对段寄存器直接赋值,应改写成这样:
MOV AX,1720H
MOV DS,AX
(3). ADD  AX,  CL    ;
CL为8位寄存器,AX为16位寄存器,两个操作数必须位数相同
(4). AND  AX,  [DX]  ;AND dest,src ;dest←dest ∧ src(符号 ∧ 表示逻辑与)AND不能和存储器的内容相与

[/Quote]
第4点错误并不是AND操作数不能是寄存器间接寻址方式,AND的规定是:除非源操作数是立即数,至少有一个操作数必须放在寄存器中,另一个操作数则可以使用任意寻址方式。真正的错误在于寄存器间接寻址方式的寄存器不能是DX,换成BX,SP,BP,EDX都可以。
第二题自己用Debug实验下就知道了
b11ght 2009-10-27
  • 打赏
  • 举报
回复
(1). PUSH 5588H ; 只能是PUSH r16/m16/seg,不能是立即数 .
(2). MOV DS, 1720H ;
不能对段寄存器直接赋值,应改写成这样:
MOV AX,1720H
MOV DS,AX
(3). ADD AX, CL ;
CL为8位寄存器,AX为16位寄存器,两个操作数必须位数相同
(4). AND AX, [DX] ;AND dest,src ;dest←dest ∧ src(符号 ∧ 表示逻辑与)AND不能和存储器的内容相与
zc315192303 2009-10-27
  • 打赏
  • 举报
回复
多来些人帮帮忙阿
daniel19861214 2009-10-27
  • 打赏
  • 举报
回复
我是来拿分的
BAYNPU 2009-10-19
  • 打赏
  • 举报
回复
(1). PUSH 5588H ; 只能是PUSH r16/m16/seg,不能是立即数 .
(2). MOV DS, 1720H ; 不允许立即数至段寄存器的传送.
(3). ADD AX, CL ; 类型不配匹.
(4). AND AX, [DX] ;AND dest,src ;dest←dest ∧ src(符号 ∧ 表示逻辑与)AND不能和存储器的内容相与
.......

21,459

社区成员

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

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