发布网友 发布时间:2022-04-23 08:14
共5个回答
热心网友 时间:2022-06-18 05:32
1.立即数送寄存器或主存
MOV
reg/mem
,
im
mov
al
,
4
;
al←4,字节传送
mov
cx
,
0ffh
;
cx←00ffh,字传送
mov
si
,
200h
;
si←0200h,字传送
mov
byte
ptr
[si]
,
0ah
;
byte
ptr
说明是字节操作
mov
word
ptr
[si+2
],
0bh
;
word
ptr
说明是字操作
#
注意立即数是字节量还是字量
#
明确指令是字节操作还是字操作
2.寄存器送(段)寄存器或主存
MOV
reg/mem/seg
,
reg;
mov
ax
,
bx
;
ax←bx,字传送
mov
ah
,
al
;
ah←al,字节传送
mov
ds
,
ax
;
ds←ax,字传送
mov
[bx]
,
al
;
[bx]←al,字节传送
3.主存送(段)寄存器
MOV
reg/seg
,
mem;
mov
al
,
[bx]
mov
dx
,
[bp]
;
dx←ss:[bp]
mov
es
,
[si]
;
es←ds:[si]
#
不存在存储器向存储器的传送指令
4.段寄存器送寄存器或主存
MOV
reg/mem
,
seg;
mov
si
,
ds
mov
ax
,
es
;
ax←es
mov
ds
,
ax
;
ds←ax←es
#
对段寄存器的操作有一些*MOV指令传送功能:
非
法
传
送
种
种
1.两个操作数的类型不一致
–-----例如源操作数是字节,而目的操作数是字;或相反
•
绝大多数双操作数指令,除非特别说明,目的操作数与源操作数必须类型一致,否则为非法指令
MOV
AL
,
050AH;非法指令:050Ah为字,而AL为字节
•
寄存器有明确的字节或字类型,有寄存器参与的指令其操作数类型就是寄存器的类型
•
对于存储器单元与立即数同时作为操作数的情况,必须显式指明;
byte
ptr
指示字节类型
,
word
ptr
指示字类型。
2.两个操作数不能都是存储器
–------传送指令很灵活,但主存之间的直接传送却不允许
•
8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种传送,可通过寄存器间接实现
mov
ax
,
buffer1;ax←buffer1(将buffer1内容送ax)
mov
buffer2
,
ax;buffer2←ax;这里buffer1和buffer2是两个字变量、;实际表示直接寻址方式
3.段寄存器的操作有一些*
–----段寄存器属专用寄存器,对他们的操作能力有限
•
不允许立即数传送给段寄存器
MOV
DS,100H;非法指令:立即数不能传送段寄存器
•
不允许直接改变CS值
MOV
CS,[SI]
;不允许使用的指令
•
不允许段寄存器之间的直接数据传送
MOV
DS,ES;非法指令:不允许段寄存器间传送
热心网友 时间:2022-06-18 05:32
MOV指令可以在CPU内或CPU和存储器之间传送字或字节,它传送的信息可以从寄存器到寄存器,立即数到寄存器,立即数到存储单元,从存储单元到寄存器,从寄存器到存储单元,从寄存器或存储单元到除CS外的段寄存器(注意立即数不能直接送段寄存器),从段寄存器到寄存器或存储单元。
虽然这个问题有点喜剧,但我还是给你最详细的解答:
解:mov指令是汇编里使用最频繁的指令,它相当于高级语言中的赋值语句。
指令格式如下:
mov
reg/mem,reg/mem/Imm
该指令的功能是:把源操作数(第二操作数)的值传给目的操作数(第一操作数)。指令执行后,目的操作数的值被改变,而源操作数的值不变。
热心网友 时间:2022-06-18 05:33
MOV BL,AX(数据长度不匹配)
MOV DS,2000H(不允许给段存储器用立即数赋值)
MOV CS,AX(禁止用MOV指令给CS赋值)
MOV [AX],[2000H](禁止直接在存储器间传送)
MOV [2000H],20H(数据长度不确切,应改为
MOV BYTE PTR [2000H],20H)
太多了,不说了。
热心网友 时间:2022-06-18 05:33
MOV BL,AX(数据长度不匹配)
MOV DS,2000H(不允许给段存储器用立即数赋值)
MOV CS,AX(禁止用MOV指令给CS赋值)
MOV [AX],[2000H](禁止直接在存储器间传送)
MOV [2000H],20H(数据长度不确切,应改为
MOV BYTE PTR [2000H],20H)
太多了,不说了!
热心网友 时间:2022-06-18 05:34
SEE