(完整版)8086汇编语言速成秘籍
mem, reg
reg, mem
reg, reg
reg, imm
mem, imm
acc, imm
(dst) ← (src) + (dst) + CF(最高位进位标志 符,有进位为 1,否则
mem, reg reg, mem reg, reg
为 0)
reg, imm
mem, imm
acc, imm
(dest) ← (dest)+1
类型 汇编指令格式
功
能
操作数说明 时钟周期数 字节数
说明
通
MOV dest, src (dest) ← (src)
用
数据传送指令
reg, seg reg, mem
2 8+EA
2 2~4
Cs 不能做目标操作数,不 能被赋值。
数
reg, imm 4
2 ~ 3 段寄存器之间不能传输数据。
据
reg, reg
(AX) ← (DX, AX) / (src) 的商
(DX) ← (DX, AX) / (src) 的余数
(AL) ← (AX) / (src) 的 商
4
1
(AH) ← (AX) / (src) 的 余数
(AX) ← (DX, AX) / (src) 的商
(DX) ← (DX, AX) / (src) 的余数
r16←mem 的 EA
r16 seg m16 r16 seg m16 reg, mem reg, reg mem, reg
11 10 16+EA 8 8 17+EA 17+EA 4 3 11
AX 字节, 10
AL 字,
10
DX 不是操 8
作数而是地
8 址
r16, mem 2+EA
r16 ←m32 的底 16 位 r16, m32
POP dst 出栈
XCHG dest, src 数据交换指令
输入 输出指 令
XLAT 换码指令 IN AL/AX, port OUT port, AL/AX IN AL/AX,DX
OUT port,DX
地址传 送指令 (对逻 辑地址 操作)
标志传 送指令 (唯一 对 F寄 存器操
LEA reg, src 取 有效地址指令 LDS reg, src 地 址指针装入 DS LES reg, src 地址 指针装入 ES LAHF 取标志 SAHF 置标志 PUSHF 标志入栈 指令
(SP) ← (SP)-2 ((SP)+1, (SP)) ← (src)
(dst) ← ((SP)+1, (SP)) (SP) ← (SP)+2
(des) ←→ (src)
AL←DS 中逻辑地址为 (BX+AL)的内存单元 (acc) ← (port) (port) ← (acc) (acc) ← ((DX)) ((DX)) ← (acc)
((SP)+1, (SP)) ← F
入栈
3
1 1 2~4 1 1 2~4 2~4 2 1 1
栈底为高地址 高字节先入栈 每次两个字节参与(16 位) 基地址在 ss 中 偏移地址在 sp 中 调用或中断时保存返回地址 两者互换,但不能同时为存 储器操作数,存储内容互换 要借助通用寄存器
操作数均隐含
2
reg
一个 8 位或 16 位通用寄存器或专用寄存器
seg m8 m16 mem m32
一个 16 位段寄存器 一个 8 位的存储器操作数 一个 16 位的存储器操作数 一个 8 位或 16 位存储器操作数 一个 32 位的存储器操作数
DS CS ES SS
dest
目标操作数
src
源操作数
五po、rt CMP 指令的结果判I/断O方端法口
不影响标志位 AL<80H 时 AH=00H , AL>=80H 时 AH=FFH AX<8000H 时 DX=0000H, AX>=8000H 时 DX=FFFFH 对于符号数:最高位为 0 表示正,为 1 表示负
(AL) ← (AX) / (src) 的 商
4
1
(AH) ← (AX) / (src) 的 余数
MOV DX,100H ; (DX)←100H ADD AX,BX ; (AX)←(AX)+(BX)
操作数需要计算 MOV AX,[100] ; (AX)←(100)
给出的均为操作 MOV AX,[BX] ;
数的逻辑地址,而且 (AX)←((DS)×16+(BX))
将逻辑地址分成几段, MOV AL,OFFSET[SI];
B——二进制
D——十进制
Q——八进制
H——十六进制
四、符号约定及含义
符号
含义
i8
一个 8 位立即数
立即数
i16
一个 16 位立即数
imm
一个 8 位或 16 位立即数
r8
一个 8 位通用寄存器
AH AL BH BL CH CL DH
DL
r16
一个 16 位通用寄存器或专用寄存器
AX BX CX DX BP SP SI DI
2
2
传
mem, reg 9+EA
2 ~ 4 目标操作数和源操作数不能
送
mem, seg 9+EA
2 ~ 4 同时为内存操作数(存储器
指
mem, imm 10+EA
3 ~ 6 操作数)。
令
seg, reg
2
2
寄存器中的数为操作数地址
seg, mem 8+EA
2 ~ 4 时为内存操作数,如【XX】。
PUSH src 入栈
(算术
运算指
令)
ADC dst, src 带进位加法
减 (算术 运算指 令)
INC dest SUB dest, src
SBBdest ,src 带进位减法
DEG dest
NEG dest 求补指令 CMP dest, src 比较指令
乘 (算术 运算指 令)
MUL src IMUL src
(dst) ← (src) + (dst)
寄存器相对寻址
基址变址寻址
操作数在指令中直接给出 操作数在寄存器中 操作数的有效地址由指令直接给出 PA=(DS)|(SS)×16+
(BX)|(SI)|(DI)|(BP) PA=(DS|SS)×16+
(BX|BP|SI|DI)+偏移量 PA=(DS|SS)×16+
(BP|BX)+(SI|DI)
源操作数为地址 操作数需要寻址
1 低四位产生进位
ZF 零标志
1 结果为 0
,0 结果不为 0
SF
符号标志
1 结果为负
,0 结果为正
PF
奇偶标志
1 底八位有偶数个 1,0 结果有奇数个
指令指针寄存器
为 1 对应符 CY AC
为 0 对应符 NC NA
ZR
NZ
NG
PL
PE
PO
1
OF 溢出标志
1 最高位有进位 ,0 最高位没进
OV
NV
(AL) ← AL 中的和调整
4
1
为组合BCD
(AL) ← AL 中的差调整
4
1
为组合BCD
(AL) ← AL 中的和调整为
83
2
非组合BCD
(AH) ← (AH)+调整产 生的进位值
(AL) ← AL 中的差调整为
60
2
非组合BCD
(AH) ← (AH)-调整产生 的进位值
Src 字节AL←AX÷src 商, 8 位 reg AH←AX÷src 余数,Src 8 位 mem 字 AX←DX AX÷src 商, 16 位 reg DX←DX AX÷src 余 数 16 位 mem Src 字节AL←AX÷src 商, 8 位 reg AH←AX÷src 余数,Src 8 位 mem 字 AX←DX AX÷src 商, 16 位 reg DX←DX AX÷src 余 数 16 位 mem
16+EA
(DS) ←m32 的高 16 位
r16 ←m32 的底 16 位 r16, m32
16+EA
(ES) ←m32 的高 16 位
(AH) ← (F 低 8 位字节) 隐含操作数 4
(F 低 8 位字节) ← (AH) 隐含操作数 4
(SP) ← (SP)-2(先入栈) 隐含操作数, 10
标志寄存器
8086 汇编总结
程伟整理
8086 汇编总结
一、8086 编程结构
执 通 AX 累加器
行 用 BX 基数寄存器
部
寄 CX 计数器
件
存器 DX 数据寄存器
EU
专 BP 基数指针
用 SP 寄 SI 存器 DI
堆栈指针 源变址寄存器 目的变址寄存器
给出栈顶偏移地址
数据寄存器
指针寄存器 堆栈段偏移地址 变址寄存器 数据段偏移地址
100
000 101 100 001 100
SF 异或 OF=1 (SF 异或 OF)或 ZF=0
SF 异或 OF=0
A<B A>B
A>=B
2
8086 汇编总结
<0 <0 A>B
A B A=B
000 010
(SF 异或 OF)或 ZF=1
A<=B
程伟整理
一、指 令 表(指令分六大类) 1、数据传送类(只有标志传送指令对 F 寄存器影响)
(完整版)8086汇编经典例程,推荐文档
sub bl,26 mov al,'a' add al,bl
MOV CX,00H WAIT1: LOOP WAIT1
;延时计数器 ;延时
DW 2 DUP (25*8,25*8,50*8) DW 12 DUP (25*8),100*8
jmp next40
DEC DX
next24: sub bl,52
==========================================
MAIN ENDP
MOV AX,[SI]
5. 编写一个数组排序(从小到大)的小程序,数组在程
序中定义,程序先将原数组显示一遍,然后排序,再
DISP PROC
将排好序的数组显示一遍。
PUSH SI
==========================================
MUS_TIME2 DW 3 DUP(50),25,25,50,25,25,100 DW 2 DUP(50,50,25,25),100 DW 3 DUP(50,25,25),100
crlf proc push ax push dx
音演奏歌曲 ========================================== ;这是一个音乐程序,按大写字母“A”,唱乐曲“玛丽
ccc segment assume cs:ccc,ds:qqq
main proc far start: mov ax,qqq
mov ds,ax
next3:
jmp next10 cmp al,'a' jnae next4 cmp al,'z' ja next4 sub al,'a'
(完整word版)汇编语言指令集合-吐血整理,推荐文档
8086/8088指令系统记忆表数据寄存器分为:AH&AL=AX(accumulator):累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.BH&BL=BX(base):基址寄存器,常用于地址索引;CH&CL=CX(count):计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.DH&DL=DX(data):数据寄存器,常用于数据传递。
他们的特点是,这4个16位的寄存器可以分为高8位: AH, BH, CH, DH.以及低八位:AL,BL,CL,DL。
这2组8位寄存器可以分别寻址,并单独使用。
另一组是指针寄存器和变址寄存器,包括:SP(Stack Pointer):堆栈指针,与SS配合使用,可指向目前的堆栈位置;BP(Base Pointer):基址指针寄存器,可用作SS的一个相对基址位置;SI(Source Index):源变址寄存器可用来存放相对于DS段之源变址指针;DI(Destination Index):目的变址寄存器,可用来存放相对于ES 段之目的变址指针。
指令指针IP(Instruction Pointer)标志寄存器FR(Flag Register)OF(overflow flag)DF(direction flag)CF(carrier flag)PF(parity flag)AF(auxiliary flag)ZF(zero flag)SF(sign flag)IF(interrupt flag)TF(trap flag)段寄存器(Segment Register)为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:CS(Code Segment):代码段寄存器;DS(Data Segment):数据段寄存器;SS(Stack Segment):堆栈段寄存器;ES(Extra Segment):附加段寄存器。
8086汇编指令大全.
不允许寄存器或存储单元到除CS外的段寄存器
2入栈(出栈指令PUSH (POP
注意:
PUSH操作数不能是“立即数” POP操作数不能是段寄存器
CS
不影响标志位
先进后出
单操作符
3交换指令XCHG
注意:
只允许寄存器与存储单元之间的交换
不影响标志位
4换码指令XLAT
5地址传送指令LEA :偏移地址
ZF=0
SF符号标志位
OF溢出标志位
DF方向标志位
IF中断允许位IF=1时响应外部中断
TF跟踪标志位
操作数:[目的操作数(OPD ,源操作数(OPS ] ;立即操作数,寄存器操作数,存储器操作数。寻址方式:
1寄存器寻址例:INC AX ; MOV AX , BX
2寄存器间接寻址(寄存器只能是BX , DI , SI , BP ; [PA=(BX、DI、SI +DS》4或BP+SS》4]
6数据段指针送寄存器LDS :低地址的字送指定的通用寄存器(SI、高地址的字
送DS
7附加段指针送寄存器指令LES :与LDS相似,低地址的字送通用寄存器(DI、高
地址送ES
上三指令不影响标志位
8标志寄存器传送指令
LAHF :标志寄存器低八位送
AH
SAHF :AH送标志寄存器低八位
PUSHF :标志寄存器压入堆栈
标志寄存器:9个有效位,分6个状态寄存器和3个控制寄存器
CF当执行一个加法(减法使最高位产生进位(借位时CF=1否则
CF=0
PF指令执行的结果低8位有偶数个一时, CF=1否则
CF=0
AF当执行一个加法(减法使运算结果低4位向高4位有进位(借位时AF=1否则
第三章 8086指令系统及汇编语言
例:已知:(DS)=2100H,(DI)=2000H 指令:MOV AX,[DI];(AX) ((DI)) 物理地址=(DS)×16 +(DI)
=2100H ×16 + 2000H =21000H+2000H =23000H 指令结果:将23000H单元内容送AL中,
将23001H单元内容送AH中。 指令:MOV AX,[DI] 为字操作(16位操作)
32000
AH AL
注意:程序(指令) 在代码段,要操作 的数据在堆栈段!
图3-4(B) 寄存器间接寻址
5、 寄存器相对寻址方式
例:MOV AX,[SI];SI中的内容为要取数的偏移 地址,假设在执行本条指令前SI=1000H,DS=2000H
其过程如图3-4(a)所示。
代码段
..
注意:程序(指令在 代码段),要操作的 数据在数据段!
操作码 数据段
DS 2000 + SI 1000
21000
.. .. ..
21000H X X 21001H Y Y
例:已知:(DS)=2100H,(DI)=2000H 指令: MOV AL,[DI] ;(AL) ((DI))
物理地址=(DS)×16+(DI) =2100H×16+2000H =21000H+2000H =23000H
指令结果:将23000H单元内容送AL中, 指令: MOV AL,[DI];字节操作(8位操作)
数据段
字寻址方式
AH=F5 AL=8A 字寻址方式
图3-3 直接寻址
3、寄存器寻址方式 格式:操作码 寄存器,寄存器
MOV AX, BX
;AX←BX
操作数存放在CPU的内部寄存器reg中 1)8 位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 2)16 位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 3)4个段寄存器seg: CS、DS、SS、ES
8086的汇编超级浓缩教程
“哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来。
”此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛。
)别急,别急,让我把这个中原委慢慢道来:一、所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪、调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣……;二、汇编直接与硬件打交道,如果你想搞通程序在执行时在电脑中的来龙去脉,也就是搞清电脑每个组成部分究竟在干什么、究竟怎么干?一个真正的硬件发烧友,不懂这些可不行。
三、如今玩DOS的多是“高手”,如能像吾一样混入(我不是高手)“高手”内部,不仅可以从“高手”朋友那儿套些黑客级“机密”,还可以自诩“高手”尽情享受强烈的虚荣感--#$%& “醒醒!”对初学者而言,汇编的许多命令太复杂,往往学习很长时间也写不出一个漂漂亮亮的程序,以致妨碍了我们学习汇编的兴趣,不少人就此放弃。
所以我个人看法学汇编,不一定要写程序,写程序确实不是汇编的强项,大家不妨玩玩DEBUG,有时CRACK出一个小软件比完成一个程序更有成就感(就像学电脑先玩游戏一样)。
某些高深的指令事实上只对有经验的汇编程序员有用,对我们而言,太过高深了。
为了使学习汇编语言有个好的开始,你必须要先排除那些华丽复杂的命令,将注意力集中在最重要的几个指令上(CMP LOOP MOV JNZ……)。
但是想在啰里吧嗦的教科书中完成上述目标,谈何容易,所以本人整理了这篇超浓缩(用WINZIP、WINRAR…依次压迫,嘿嘿!)教程。
大言不惭的说,看通本文,你完全可以“不经意”间在前辈或是后生卖弄一下DEBUG,很有成就感的,试试看!那么――这个接下来呢?――Here we go!(阅读时看不懂不要紧,下文必有分解)因为汇编是通过CPU和内存跟硬件对话的,所以我们不得不先了解一下CPU和内存:(关于数的进制问题在此不提)CPU是可以执行电脑所有算术╱逻辑运算与基本I/O 控制功能的一块芯片。
第三讲8086汇编语言
XCHG BH, BL ;√ XCHG AX, 1122H ;× XCHG DS, AX ;× XCHG [SI], BP ;√ XCHG [SI], [DI] ;×
4
3.3 常用汇编指令
D S: 2000H 01H
2001H 02H
CF为前面指令产生的CF
❖格式:ADC DET ,SRC
❖功能:(DST)+(SRC) +CF DST ;
❖要求:同ADD
通用Regs ±
❖ADC指令主要用于多字节加法运算
IMM 通用Regs
MEM
❖ 例:两个32位数相加
0123FAB5H+0ABC212AH=0BE01BDFH 0123 FAB5
;√
MOV 2000H, AX
; × 目的不能为立即数
MOV DS:2000H, AX ; √
3
3.3 常用汇编指令
一、数据传送类指令
2.数据交换指令
❖格式: XCHG DST ,SRC ❖功能:将源 (SRC)和目的(DST)内容互换;
操作结果不影响F标志位。 ❖要求:只在两个通用Regs之间、通用Regs 和MEM之间互
❖ 说明:LEA的源操作数寻址方式为立即数寻址;
LDS、LES的源操作数寻址方式为存储器寻址。
❖例2:设 D S : 1 0 0 0 H 1 0 H 执行: MOV BX, 1000H
1001H 00H
LDS SI, [BX] ;间接寻址
1 0 0 2 H D 2 H 后, NhomakorabeaX=1000H
1003H 13H
➢操作数类型明确,不能出现二义性(即不能模糊)。
8086汇编语言指令表(按字母顺序)
2. 示例: (AL)=18H,(BL)=06H
ADD AL,BL ; (AL)<--(AL)+(BL) ; (AL)=1EH
DAA ; (AL)
DAS
组合十进制减法调整指令 DAS(Decimal Adjust for Subtraction)
则(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL) and 0FH,
否则(AL)<--(AL) and 0FH
ADC
带进位加法指令 ADC(Addition Carry)
格式: ADC OPRD1,OPRD2
功能: OPRD1<--OPRD1 + OPRD2 + CF
DAA
组合的十进制加法调整指令 DAA(Decimal Adjust for Addition)
格式: DAA
功能: 对AL中的两个组合进制数相加的结果进行调整,调整结果仍放在AL中,进位标志放在CF中.
说明:
1. 调整操作如下
(1) 若(AL) and 0FH>9 或 AF=1,则(AL)<--(AL)+6,AF<--1,对低四位的调整.
格式: DAS
功能: 对两个组合十进制数相减后存于AL中的结果进行调整,调整后产生一个组合的十进制数且仍存于AL中.
说明:
调整操作
若(AL) and 0FH > 9 或 AF=1,则(AL)<--(AL)-6,AF=1
若(AL) and 0F0H > 90H 或 CF=1,则(AL)<--(AL)-60,CF=1
(汇编语言教程)5_80868088汇编语言-2
104H DUP(11H 104H DUP(11H)
DUP( DUP(0)
ENDS
ENDS DATA2 DATA2 SEGMENT PARA DB COMMON ‘DATA2’ DATA2 DATA N2 DATA2 DATA2 105H DUP( 105H DUP(0)
DATA2 DATA2 N1 DATA2 DATA2 END
默认值为: 默认值为:PARA
III、 III、组合类型
段名 SEGMENT [定位类型] [组合类型] [使用类型] [‘类别’] 定位类型] 组合类型] 使用类型] [‘类别 类别’ …… …… ; 语句序列 段名 ENDS
PRIVATE:私有段,不进行组合。 PUBLIC:
– 不同模块中的同为public属性的同名段连接组合成一个逻辑段。
3、过程定义伪指令
格式: 格式:过程名 [类型 类型] PROC [类型] … 过程体语句 RET 段名 ENDP PROC和ENDP是成对出现的 是成对出现的。 PROC和ENDP是成对出现的。 类型有近(NEAR)和远(FAR)两种, 类型有近(NEAR)和远(FAR)两种,若过程缺省 NEAR缺省 则属默认值。若为远过程, FAR不 缺省, 或NEAR缺省,则属默认值。若为远过程,则FAR不 能省略。 能省略。 过程名具有段地址、 过程名具有段地址、段内偏移量和类型三个属 性。
2、源程序开始和结束伪指令
程序开始伪指令
– NAME伪指令 NAME伪指令 – TITLE伪指令 TITLE伪指令
程序结束伪指令
– END
(1)程序开始伪指令NAME 程序开始伪指令NAME
NAME伪指令 NAME伪指令 格式: 格式:NAME 模块名 含义:表示一个模块的开始, 含义:表示一个模块的开始,并给出该模 块名。 块名。
8086汇编语言学习(六)8086处理结构化数据(模拟高级语言结构体、数组)
8086汇编语⾔学习(六)8086处理结构化数据(模拟⾼级语⾔结构体、数组)⼀、8086汇编定义数据 要处理结构化数据,必须先定义数据。
8086汇编作为⼀门编程语⾔,定义数据的⽅式⽐起复杂的⾼级语⾔要简单不少。
汇编语⾔贴近机器底层,所处理的数据逻辑上都可以视为⼆进制数据,按照对不同⼤⼩内存单元的处理,分为三种:db、dw、dd。
1.db db 即define byte,定义⼀个字节变量。
例如 db 1h,代表着db指令后的值占⽤⼀个字节的内存空间 1h=>01h。
特别的,使⽤db可以⽐较简单的定义字符串数据,例如db "ABC",代表着定义A、B、C三个连续的字符。
2.dw db 即define word,定义⼀个字变量。
例如 dw 1h,代表着dw指令后的值占⽤⼀个字/两个字节的内存空间 1h=>0001h。
3.dd dd 即define doubleword,定义⼀个双字变量。
例如 dd 1h,代表着dw指令后的值占⽤两个字/四个字节的内存空间 1h=>0000 0001h。
在连续定义数据时,可以通过逗号进⾏缩写。
例如 db 1h,2h,3h等价与db 1h;db 2h;db 3h。
同时上述三种⽅式都可以与dup关键字(duplicate)使⽤。
例如,定义3个值为1h的字形数据,可以写为dw 3 dup(1h),其等价于dw1h,1h,1h。
在定义复数个相同的数据时,可以简化程序,增强可读性。
db、dw、dd、dup都属于8086汇编的伪指令,由汇编器在编译时进⾏处理,并没有对应的机器指令。
⼆、8086汇编处理结构化数据 之前介绍了8086各种不同⽅式的内存寻址⽅式,下⾯介绍8086如何利⽤这些多样的寻址⽅式来处理结构化的数据。
举⼀个简单的例⼦,假设存在⼀个结构化的数据(公司),拥有五个属性。
公司属性: 公司名称: BLZ 总裁名称: Deckard Cain 公司排名: 15 年收⼊(亿元): 50 产品: WOW 需求是,在内存中定义该数据并且对其中的部分属性进⾏修改,将公司排名修改为10,年收⼊修改为80,产品名称修改为OWO。
迅速掌握8088_8086指令系统的教学方法
业出版社, (@@6 晓 尤 编 译; 面 向 对 象 的 建 模 、 设计技术与方法; 北 2 王博, 京: 希望电脑公司, (@@2 柴 跃 延 编 译; 计 算 机 软 件 新 技 术—面 向 对 象 的 ’ 李芳芸, 系 统 分 析; 北 京 : 清华大学出版社, (@@2
;$’( <&$=&’( >?3*2$%* @#AB+2, 3BCD EFEGH EHGDGIJD F KGJBLM LN OPCQR SHFDECIS FDDGKTUV UFISPFSG CIDJHPQJCLI DGJ%WBCQB JL DLKG GXJGIJ BGUED DJPMGIJD DJPMV FDDGKTUV UFISPFSG MGDCSIY ,DDGKTUV 2FISPFSG !"!!#!"!$ <IDJHPQJCLI 9GJ ’EGHFIM
布局当前的查看界面。另外, 我 们 还 可 修 改 工 具 栏 底 图 === 在 E+^_$PNHPGF [JUIM_.+& ,]MCIFM_.+&,IIE 系 统 文 件 夹 下 找 到 9NNU<GP=<GTLHPNBKS;‘DH 文 件( (2Aa(2A , 用你自 256 色 ), 己的图替换它即可。
)#* +,-./ )#* &,-("""0 )#* 教学过程中,我先讲指令系统的统一格式和 基本规则, 然后再讲具体指令。 这时我只需讲操作码和特殊 的规则,节约不少课时。学生也觉得指令系统不是那么难 记。 在运用指令编写程序过程中, 学生记得用规则来验证指 令的正确性,避免犯无谓的错误。通过多年的教学实践来 看, 我觉得这是教授指令的好方法。 参 考 文 献 清 ( 沈 美 明 等 编 著 ; 7<)=$+ 汇 编 语 言 程 序 设 计 >)?; 北 京 : 华大学出版社, (@@2 中央 2 李 兆 凤 编 ; A"AA:A"A6 汇 编 语 言 程 序 设 计 >)?; 北 京 : 广播电视大学出版社, (@@’ 清华大 ’ 周 明 德 ; 微 型 计 算 机 系 统 原 理 及 应 用 >)?; 北 京 : 学出版社, (@@A 华南理工大学, ! 许 骏 ; 计 算 机 系 统 原 理 及 应 用 >)?; 广 州 :
