这些汇编指令错在哪儿啊?

来源:百度知道 编辑:UC知道 时间:2024/07/07 13:55:56
1 mov [BX],5
2 mov ax,DL
3 add ax,5
4 mov ds,1000H
5 push CH
6 POP cs
7 add es,ax
8 mov ss,cs
9 dec bx
10 INC[BX]

1 mov [BX],5;立即数5送内存单元时,需要指定内存单元的属性,如MOV BYTE PTR [BX],5
2 mov ax,DL;源操作数AX(16位)与目的操作数DL(8位)类型不匹配
3 add ax,5 ;正确
4 mov ds,1000H;立即数不能直接送寄存器,需要通过通用寄存器转送,如MOV AX,1000H
MOV DS,AX
5 push CH;堆栈操作以字为单元,不是为8位寄存器CH
6 POP cs;CS不能作为目的操作数
7 add es,ax;段寄存器不能参与算术运算
8 mov ss,cs;段寄存器间不能互相操作
9 dec bx;正确
10 INC[BX];对内存操作需要指出类型,如INC BYTE PTR [BX]

1.不能把立即数5给内存[BX],应该用BYTE/WORD/DWORD等控制内存大小.
2.AX,DL位数不匹配.
3.应该没错,??
4.不能把1000H直接给DS,应借用一寄存器AX,1000H-->AX,AX-->DS.
5.CH?不能用8位的CH.
6.没错啊??
7.不能用ES作加.
8.SS,CS之间不能直接传送,应该借助AX.
9.正确.
10.对于不确定的内存大小,不能实现自加1运算.