判断下列指令书写是否正确.汇编

2024-11-30 12:51:40
推荐回答(4个)
回答(1):

1、错误。MOV AL,BX 原因:mov指令要求目的操作数与源操作数类型一致.AL是8位寄存器,BX是16位寄存器.
3、错误。INC [BX] 原因:未指定操作数类型,用byte ptr [BX]指定字节类型
4、错误。MOV BL,F5H 原因:源操作数是立即数,前面应加'0',写作:'0F5H' 或 '0xF5'
6、错误。POP CS 原因:CPU不允许对程序直接改变cs的值。

(提醒一楼那位:F5H为8位,快回去复习一下16进制知识.)

回答(2):

1、MOV AL,BX ;操作数类型不匹配,AL为8位寄存器,而BX为16位寄存器
2、MOV AL,CL ;正确
3、INC [BX] ;未指定操作数类型,用byte ptr [BX]指定字节类型或word ptr [BX]指定字类型
4、MOV BL,F5H ;源操作数若是立即数,则前面应该加0,写作:0F5H;源操作数若为标识符,则在其它地方应该明确定义。
5、MOV DX,2000H ;正确
6、POP CS ;正确
7、PUSH CS ;正确

说明:除指令指针寄存器(IP)外,其它16位寄存器都允许进栈、出栈操作。

回答(3):

1.错误。原因:mov指令要求目的操作数与源操作数必须类型一致,或者同为字
或者同为字节。此题源操作数BX为字,而目的操作数AL为字节。
2.正确。
3.错误。原因:INC指令对操作数加1,其操作数可以是寄存器或存储器。此题
应改为INC byte ptr [BX].
4.错误。原因:mov指令要求目的操作数与源操作数必须类型一致,或者同为字
或者同为字节。此题源操作数F5为16位,而目的操作数BL为8
位。
5.正确。
6.错误。原因:出栈指令不允许对cs进行操作。
7.错误。原因:进栈指令不允许对cs进行操作。

回答(4):

1.错误。原因:mov指令要求目的操作数与源操作数必须类型一致,或者同为字
或者同为字节。此题源操作数BX为字,而目的操作数AL为字节。
2.正确。
3.错误。原因:INC指令对操作数加1,其操作数可以是寄存器或存储器。此题
应改为INC byte ptr [BX].
4.错误。原因:F5应写成0F5H。
5.错误。原因:立即数不能直接送段寄存器.
6.错误。原因:出栈指令不允许对cs进行操作。
7.正确。