微机原理--指令判断--判断指令是否正确。

本文深入解析微机原理中常见的指令错误案例,涵盖MOV、INC、ROL、OUT等指令的使用误区,强调操作数类型、寻址方式及特殊寄存器使用的规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微机原理判断指令是否正确【见的多了,你就懂了~】

1. MOV 1000H , BX ;指令错误,原因:立即数不能作为目标操作数。

2. MOV BX , CL ;指令错误,原因:字长不一致。

3. INC [BX] ;指令错误,原因:需指定操作数存储器操作字。

4. MOV [BX] , [6014H] ;指令错误,原因:不能同时为存储器操作字。

5. ROL AL, 2 ;指令错误,原因:循环次数超过 1 用 CL 寄存器。

6. MOV CS, AX;指令错误,原因:CS是代码段寄存器,这个寄存器保存的是代码段的首地址,并且这个寄存器只能由系统管理,用户不可更改。原因也可参照下列要求第五条。

7. MOV AL, [SI+DI];指令错误,原因:同时出现了两个变址寄存器。在基址变址相对寻址中,基址寄存器只能是BX/BP,变址寄存器只能是SI/DI。同理: MOV AL, [BX+SI]正确。

8. MOV DS,0100H;错误。源操作数是立即数时,目的操作数不能是段寄存器。

9. OUT 310H, AL;错误。端口直接寻址的范围应在0~ FFH之间。

10. MOV ES:[BX+ DI],AX ;正确。

11. MOV SS:[BX+SI+ 100H],BX ;正确。

12. ADD [SI], 20H ;错误,目的操作数类型不明确。

13. PUSH 2000H;错误。堆栈指令的操作数不能是立即数。

14. INC [DI] ;错误目的操作数类型不明确。

15. OUT BX, AL;错误。端口间接寻址的寄存器只能是DX寄存器。

16. XCHG CX, DS ;错误。交换指令中不能出现段寄存器。

17. POP AL;错误。堆栈指令的操作数只能是字操作数(即1 6位操作数)。

18. ADD BYTE PTR[BP],256 指令错。ADD指令要求两操作数等字长。

19. MOV DATA[SI],ES:AX 指令错。源操作数形式错,寄存器操作数不加段重设符。

20. JMP BYTE PTR[BX] 指令错。转移地址的字长至少应是1 6位的。

21. OUT 230H,AX 指令错。对输人输出指令,当端口地址超出8位二进制数的表达范围(即寻址的端口超出256个)时,必须采用间接寻址DX。

22. MOV DS,BP 指令正确 。

23. MUL 39H 指令错。MUL指令不允许操作数为立即数。

24. SBB DX , 10H 对。

25. INC [BP] 错 没有给出操作数的类型。

指令对操作数的要求。

  1. MOV指令中两个操作数字长必须相同。
  2. 两个操作数不能同时为存储器操作数。若要在两个存储器单元之间进行数据传送,需要两条MOV指令实现。(即用一个寄存器做中间数传参)
  3. 不能用立即数直接给段寄存器赋值。
  4. 两个操作数不能同时为段寄存器。
  5. 一般情况下,指令指针IP及代码段寄存器CS的内容不通过MOV指令修改,即他们不能作为目标操作数,但可以作为源操作数。
  6. 虽然许多指令的执行对状态寄存器FLAGS的标志位产生影响,但通常情况下,FLAGS整体不能作为操作数。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值