80x86 汇编语言 指令判断/改错题 整理(持续更新!)

本文汇集了 80x86 汇编语言的指令判断/改错题,将随着作者的复习进度不断更新。

新人博主,大家的每一次阅读都会激励我继续创作,大家的点赞将会是我继续更新的巨大动力,对文中内容或实验过程中有任何疑问欢迎留言!

单条指令指出错误题目汇总

寻址方式相关错误

MOV AX, [CX]			; 间接寻址 16 位寄存器只能用 BX DI SI BP 中的一个
SUB WORD PTR [AX], 3	; 间接寻址 16 位寄存器只能用 BX DI SI BP 中的一个
SUB [CX], DX			; 间接寻址 16 位寄存器只能用 BX DI SI BP 中的一个
MOV [ADRT], AX			; [ADRT] 直接寻址未指明段寄存器
MOV WORD PTR [SI], [DI]			; 源操作数和目的操作数不能同时用存储器方式表示
MOV BYTE PTR [EAX+4], DS:[100]	; 源操作数和目的操作数不能同时用存储器方式表示
; COUNT 为字变量
ADD [EBX+EDI*4+10], COUNT		; 源操作数和目的操作数不能同时用存储器方式表示
MOV ES:[DX], BX			; 间接寻址 16 位寄存器只能用 BX DI SI BP 中的一个
SUB 2[DX], AX			; 变址寻址与间接寻址一致,16 位寄存器只能用 BX DI SI BP 中的一个
MOV [AX+2], BX			; 变址寻址与间接寻址一致,16 位寄存器只能用 BX DI SI BP 中的一个
MOV [CX-100H], AX		; 变址寻址与间接寻址一致,16 位寄存器只能用 BX DI SI BP 中的一个
MOV [DX+60], AX			; 变址寻址与间接寻址一致,16 位寄存器只能用 BX DI SI BP 中的一个
MOV [DI+SI], DX			; 基址变址寻址 BR 只能选用 BX 、BP 之一;IR 只能选用 SI 、DI 之一

数据类型与表达式定义错误

MOV AL, 1200H		; 数据类型不匹配,AL 为 8 位,1200H 为 16 位
MOV AL, BX			; 数据类型不匹配,AL 为 8 位,BX 为 16 位
MOV SI, AL			; 数据类型不匹配,SI 为 16 位,AL 为 8 位
MOV BL, WORD PTR [BP]		; 数据类型不匹配, BL 为字节类型, SS:[BP] 被指定为字类型
MOV [BX+DI] , 10H		; 未指明操作数类型

机器指令语句使用错误

MOV EAX, EIP			; IP/EIP 不能供程序直接访问

程序段指出错误题目汇总

题目 1

阅读下列程序段,指出其中的错误语句。

.386
DATA SEGMENT USE16
	NUM DB 11H, 22H, 33H, 44H
	LEN EQU LEN - NUM			; 定义符号常量 LEN , 其值为以变量 NUM 为首
								; 址的数据存储区所占的字节数
DATA ENDS
	; ...
	MOV AX, NUM					; 类型不一致,出错
	MOV EAX, DWORD PTR NUM		; 临时改变 NUM 为双字类型
								; (NUM) = 44332211H → EAX
	MOV SI, OFFSET NUM			; NUM 的 EA → SI
	ADD 2[SI], LEN				; 操作数类型不明确
	MOVE BYTE PTR 2[SI], 'A'	; 41H → NUM + 2
	INC [SI]					; 操作数类型不明确
	DEC BYTE PTR [SI]			; OPD = [SI] = NUM, 由 PTR 指定为字节类型
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值