标准机器代码示例
1/2字节 0/1字节 0/1/2字节 0/1/2字节。
操作码 mod reg r/m 位移量 立即数。
mov ax,[BP+0] ; 机器代码是 8B 46 00。
•前一个字节8B是操作码(含w=1表示字操作)
•中间一个字节46(01 000 110)是 “mod reg r/m”字节。
–reg=000表示目的操作数为AX。
–mod=01和r/m=110表示源操作数为[BP+D8]。
•最后一个字节就是8位位移量〔D8=〕00。
8086指令系统概述
•Intel 8086指令系统共有二万多条指令,用了一百多个助记符 ,可分成6类功能组:
① 数据传送类指令
② 算术运算类指令
③ 逻辑运算(位操作)类指令
④ 串操作类指令
⑤ 控制转移类指令
⑥ 处理机控制类指令
学习指令的注意事项
•指令的功能——该指令能够实现何种操作。通常指令助记符就是指令功能的英文单词或其缩写形式。
•指令支持的寻址方式——该指令中的操作数可以采用何种寻址方式。
•指令对标志的影响——该指令执行后是否对各个标志位有影响,以及如何影响。
•其他方面——该指令其他需要特别注意的地方,如指令执行时的约定设置、必须预置的参数、隐含使用的寄存器等。
指令格式的通用规定
•双操作数指令,除串操作指令外,不允许两个都是存储器。
•立即数,CS不能做目的操作数。
•IP不能显示地用做操作数。
1.数据传送类指令
•数据传送是计算机中最基本、最重要的一种操作。
•传送指令也是最常使用的一类指令。
•传送指令把数据从一个位置传送到另一个位置。
•除标志寄存器传送指令(SAHF,POPF)外,均不影响标志位。
•重点掌握 MOV PUSH POP XCHG IN OUT XLAT LEA。
传送指令MOV(move)
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;非法指令:不允许段寄存器间传送。
美孚.埃索润滑油经销商
张勤俭 先生 (经理) 移动电话: 13583370373 。
电 话: 86-0533-3124068 地 址: 中国 山东 淄博市 张店 。
嘉实多:电话:021-38605888 淄博代理商——张海生0533-7317566。
具体的联系方式你可以拨打他们公司的客服咨询电话,客服人员会告诉你在哪里拿货!
美孚润滑热线:电话:800-8208238 电话:021-24076000 。
壳牌润滑油:010-65058880 传真:010-65055452。
道达尔:电话: 021-63520055。
加德士:电话:010 5866 9933 。
长城:400-810-9886。
昆仑:免费服务电话:8008103001 4008103000 华东分公司:(021)50818216。
统一 :免费服务热线:8008101162 客户服务热线:010-61231537 。
龙蟠:热线:400-676-1858 、025-8580-5778 客服热线:(025)85804818。