微机原理第3章2
微机原理与接口技术课件微机第三章
常见的高级语言包括C、C、Java、 Python等,可用于开发各种应用程序 和软件。
高级语言具有易学易用、可移植性好 的特点,但执行速度较慢,占用内存 较多。
05
微机操作系统
操作系统定义与功能
操作系统定义
操作系统是计算机系统中用于管 理和控制计算机硬件与软件资源 的系统软件,是计算机系统的核 心组成部分。
微机发展历程
总结词
微机的发展经历了从早期的大型机、小型机到现在的个人计算机和移动设备的演变。
详细描述
微机的发展始于20世纪70年代,最早的微机是苹果电脑和IBM PC。随着技术的不断发展,微机的性能不断提高, 体积不断减小,价格也逐渐降低。同时,随着互联网的普及,微机已经成为人们获取信息、交流沟通、娱乐休闲 的重要工具。
。
执行指令
执行指令是指根据指令的操作 码执行相应的操作,完成指令
的功能。
访存取数
访存取数是指根据指令中的地 址码从内存中读取或写入数据
。
04
微机编程语言
机器语言
机器语言是计算机能够直接执 行的指令集合,由二进制数0和 1组成。
机器语言具有执行速度快、占 用内存少的特点,但编写复杂, 易出错,可移植性差。
实时操作系统
实时操作系统主要用于实时控制系统,要求系统能够快速、准确地响 应外部事件,具有实时性和高可靠性。
网络操作系统
网络操作系统是用于管理网络资源的操作系统,支持网络中计算机之 间的通信和资源共享。
常见微机操作系统介绍
Windows
微软公司开发的桌面操作 系统,广泛应用于个人计 算机领域。
Linux
02
微机硬件组成
中央处理器
中央处理器(CPU)是微机的核心部 件,负责执行指令和处理数据。
微机原理3.2
3.4.5 其它伪指令
1. TITLE 伪指令 格式: 格式: TITLE 标题 TITLE伪指令可指定每一页上打印的标题。同时,如 伪指令可指定每一页上打印的标题。 伪指令可指定每一页上打印的标题 同时, 果程序中没有使用NAME伪指令,那么将用标题中的 伪指令, 果程序中没有使用 伪指令 个字符作为模块名。 个字符。 前6个字符作为模块名。标题最多可用 个字符。 个字符作为模块名 标题最多可用60个字符 2. 源程序结束伪指令 格式: 格式: END 表达式
5. 定位伪指令 ORG 格式: 数值表达式的值为两字节无符号数 格式:ORG 数值表达式;数值表达式的值为两字节无符号数 功能:指出段内在该语句下面的程序段的起始地址。 功能:指出段内在该语句下面的程序段的起始地址。 例如: 例如:
DATA BUF DATA SEGMENT ORG 1000H ; 设置 的值为 设置$的值为 的值为1000H DB ′ABCD′;变量 的偏移地址为1000H ;变量BUF的偏移地址为 的偏移地址为 ENDS
格式: 格式: 符号名 EQU 表达式 符号名 = 表达式 功能:给符号定义一个值、其他的符号名、 功能:给符号定义一个值、其他的符号名、表达式或助记符 注意: 注意: 语句定义的符号在同一个程序模块中不允许重新定义。 不允许重新定义 EQU 语句定义的符号在同一个程序模块中不允许重新定义。 语句定义的符号允许重新定义,使用更灵活方便。 允许重新定义 = 语句定义的符号允许重新定义,使用更灵活方便。 CONST EQU 256 CONST EQU BX+SI ;错 ALP EQU CONST-6 EMP2=07H; ; EMP2=EMP2+1;对 ; 注意:COUNT等符号常数并不占存储空间 等符号常数并不占存储空间! 注意:COUNT等符号常数并不占存储空间!
微机原理与接口技术课件微机第三章
MOV AX , ES:[3E4CH] MOV AX , RESULT
如何区分RESULT是立即数还是符号地址?
如果 RESULT DW 3E4CH; 符号地址 MOV AX,RESULT
如果 RESULT EQU 3E4CH; 立即数 MOV AX,RESULT
(2)PUSH 进栈指令 指令格式为:PUSH 源(不能是立即数) 其操作过程是: a、SP-2,指示堆栈中可以存放数据的位置 b、存源操作数,完成进栈操作。
(3)POP 出栈指令 指令格式为:POP 目的(不能是CS) 其操作过程是: a、将SS:SP所指示的栈顶处的两个字节的数据,弹到目的操作数中; b、SP+2,指示当前栈顶位置,完成出栈操作。
操作码
0:数据从寄存器传出 1:数据传至寄存器
2.立即数寻址指令的编码
包含段寄存器的指令的编码
段超越前缀指令的编码
3-3 8086的指令集
01
添加标题
02
添加标题
03
添加标题
04
添加标题
05
添加标题
06
添加标题
8086指令系统按功能可分为6大类型:
一、数据传送指令
l 通用数据传送
添加标题
l累加器专用传送指令
目标地址传送指令 这类指令有: LEA 有效地址传送到寄存器 LDS 将双字指针送到寄存器和DS LES 将双字指针送到寄存器和ES Eg:LEA BX,[1000H] LDS SI,[1000H] LES DI,[1000H]
标志寄存器传送指令 LAHF FR寄存器的低8位送AH SAHF AH 送 FR寄存器的低8位 PUSHF FR寄存器推入堆栈 POPF 从栈顶中弹出存入FR寄存器
微机原理第3章课件(全)
比如AL,BX,CX,DS、IP等等。 【例3-4】MOV AX,BX MOV AL,BL 其中,AX,BX是16位寄存器寻址方式;AL,BL是8位寄存器 寻址方式。
第3章 指令系统和寻址方式 3.2.3 存储器寻址方式 当操作数放在存储器中的某个单元时,CPU要访问存储器 才能获得该操作数。如果存储器的存储单元地址是20位,把通 过各种方法算出段内偏移地址(有效地址),结合段地址形成20 位物理地址找到操作数的方法,统称为存储器寻址方式。 1. 直接寻址方式 直接寻址方式是指寻找的操作数的地址在指令中直接给出。 这种寻址方式在汇编格式中表示为 ● 操作码 地址表达式 (或[地址表达式]) ● 操作码 [数字表达式]
第3章 指令系统和寻址方式 【例3-14】 MOV AX,[BX] [SI](或写为MOV AX, [BX+SI]) 若 (DS)=2000H,(BX)=0500H,(SI)=0010H 则 偏移地址=0500H+0010H=0510H 20位物理地址=20000H+0510H =20510H 如(20510H)=12H,(20511H)=34H,操作的示意图如图3.5所示。
指令由两部分组成:操作码字段和地址码字段,格式如图3.1所 示。
第3章 指令系统和寻址方式
操作码
操作数(地址码)
图3.1 指令格式 操作码字段:用来说明该指令所要完成的操作。 地址码字段:用来描述该指令的操作对象。一般是直接给出 操作数,或者给出操作数存放的寄存器编号,或者给出操作数存 放的存储单元的地址或有关地址的信息。
第3章 指令系统和寻址方式 其中,“267”是数字;“10010011B AND 0FEH”是一个数 字表达式;PORT1是一个用EQU定义的变量名,属于常数; DATA1是定义的段名,实际上就是段地址,是一常数。这些都 是立即寻址方式。 汇编立即寻址方式时,汇编程序首先计算出数字表达式的 值,然后将其写入指令的地址码字段,这称为立即数。
微机原理第三章(2)
通用 数据 传送 指令 地址 传送 指令
累加 器专 用指 令 标志 寄存 器传 送指 令
XLAT LAHF SAHF
标志寄存器入栈指令
标志寄存器出栈指令
PUSHF
POPF
把Flag内容压入堆栈
把Flag内容弹出堆栈
不影响
O S Z APC
1. 通用数据传送指令
(1) 基本传送指令
MOV DST, SRC
数据写入堆栈称为压入堆栈(PUSH),也叫入栈。 数据从堆栈中读出称之为弹出堆栈(POP),也叫出栈。 先入栈的数据由于存放在栈的底部,因此后出栈;而后 入栈的数据存放在栈的顶部,因此先出栈。 微型计算机多在主存储器中开辟堆栈。这种堆栈 称之为外堆栈。外堆栈的主要优点是堆栈容量大,可以 认为堆栈空间是无限的,因此能实现无限制的中断嵌套 和子程序嵌套。但外堆栈的操作速度较慢。 另一类堆栈称之为内堆栈,所谓内堆栈就是在CPU 芯片的寄存器中开辟堆栈。MCS-51的堆栈就是开辟在 内部RAM中。内堆栈的主要优点是操作速度快,但堆 栈容量有限。此外,由于堆栈的占用,也会减少内部 RAM的用户可利用单元
⑤
不允许用立即数作目的操作数 MOV 2000H, AL ;错
⑥ 用BX、SI、DI来间接寻址时,默认的段寄存器为DS,而 用BP来间接寻址时,默认的段寄存器为SS。比如: MOV WORD PTR[BP],1000H; 意指字单元。 MOV WORD PTR[BX],2000H; 设(DS)=3000H,(SS)=4000H,(BX)=5000H, (BP)=6000H, WORD PTR为伪指令
MOV [2000H],[3000H]
;错
例 : MOV SI,3000H MOV AL,[SI] MOV [2000H],AL ③ 在MOV指令当中,寄存器既可以作为源操作数,也可以作为目 的操作数,但CS和IP这两个寄存器不能作为目的操作数,换句 话说,这两个寄存器的值不能随意修改。 例如:0
微机原理课件第3章2
(AX) (DS: OFFSET TABLE+(BP))
3.3 数据寻址方式
④基址变址寻址Based Indexed Addressing
要寻找的操作数在某存储器单元之中,该单元
有效地址的一部分在 BBXP中,另一部分在 中D。SII
3.3 数据寻址方式
…… ……
MOV AX , [BX]
DS: 3 0 0 0 0 H
+BX1: 0 5 0 H
PA: 3 1 0 5 0 H
8BH 07H
AX AH AL
31050H 31051H
存储器
操作码
CS 段
数据段
3.3 数据寻址方式
例2:MOV ES:[SI] , AL 指令完成的功能为: (ES:(SI)) (AL)
寄存器寻址既可以作DST,也可以作SRC。
3.3 数据寻址方式
3.存储器寻址
这类寻址方式,操作数在存储器中,而存 储器单元的地址由以下五种寻址方式的任何 一种均可以找到。但在指令中给出的只是要 寻找的操作数所在单元的段内偏移地址,而 操作数所在单元的段地址除非指令中用段前 缀特别指明,否则是默认的DS。
…
∴(AX)=1234H
存储器
3.3 数据寻址方式
立即寻址主要用来给REG或M赋初值。 注 意:只能用于源操作数字段,不能用于目的操作 数字段。如:MOV 12H , AL (语法错误)
3.3 数据寻址方式
2.寄存器寻址
数据放在指令规定的寄存器中,对16位数据, REG可以是AX、BX、CX、DX、SI、DI、SP、 BP以及段寄存器,而对于8位数据, REG可以是 AH、AL、BH、BL、CH、CL、DH、DL。
微机原理3.2
定义 LAB DB 5 DUP(0)
LAB
LAB的长度为5 其空间大小为5 DATA1
00H 00H 00H 00H 00H 10H
DB 5 DUP(0)
DATA1 DB 10H
DATA1的长度为1
大小也为1
定义 NMA DB 2 DUP(1,3,2DUP(40H))
NMA
NMA的长度为2
但大小为8
•
•
DATA10 DD DATA7
DATA11 DW DATA6
例3.1 用数值表达式定义变量 DATA1 DB 10,10H,′AB′,? DATA2 DW 200H,-2,′AB′,? DATA3 DD 3*20 在源程序中书写为:
DATA SEGMENT
变量 DATA1具有属性
DATA1 DB 10 ,10H ,’AB’ ,? … DATA ENDS CODE SEGMENT
DATA1+1 DATA1+2 DATA1+3 DATA1+4 DATA2 DATA2+2
?
00H 02H FEH FFH空单元 (1B)Fra bibliotek无名的变量
42H
41H ? ? DATA3 3CH 00H 00H
空单元 (2B)
注:常用问号定义不确定值的变量
00H
例3.2 用地址表达式定义变量 地址表达式是指该表达式的运算结果是一个地址,指 向某个存储单元。 若该存储单元存放数据,则称该表达式为变量; 若存放指令,则称之为标号。
定义labdbdup0lab00h00h00h00h00h00hdbdup0lab的长度为5其空间大小为5data1db10hdata110hdata1的长度为1大小也为1定义nmadbdup132dup40hnma01h03h40h40hdbdup40hnma的长度为2但大小为803h01h40h40hdbdup40hdb323标号标号是给指令语句所在地址取的名字它表明该指令在存储器中的位置具有三种属性
微机原理-第三章ppt课件
当S=1而R=1时,输出保持
符号:为了作图方便, 用方块来表示。
.
5
改进型式:时标RS 触发器——RS 触发器外 加的时标脉冲, 如图下图 所示。 图中的CLK 即为时标脉冲。
S
&
QS Q
CLK
R&
QR Q
功能:无论是置位还是复位, 都必须在时标脉 冲端为高电位时才能进行。
.
6
3.2.2 D 触发器
基本构成:D 触发器是在RS 触发器的基础上 引伸出来的, 它只需一个输入端口, 下图 为D 触发器的原理。
D
QS Q
QR Q
功能:当D 端为高电位时, S 端为高电位,
称为置位。
当D 端为低电位时, S 端为低电位,
称为复位。
.
7
改进型式:增加两个与门就可以接受 时标脉冲CLK 的控制。
第三章 微型计算机的基本组成电路
3.1 算术逻辑单元(ALU) 3.2 触发器( Trigger ) 3.3 寄存器( Register ) 3.4 三态输出电路 3.5 总线结构 3.6 译码器、数据选择器 3.7 存储器(Memory)
.
1
3.1 算术逻辑单元( ALU)
功能: 二进制数的四则运算, 布尔代数的逻辑运算。
⋯⋯ 第七时钟后沿到 Q= 111 第八时钟后沿到 Q= 000
在第八个时钟脉冲到时, 计数器复位至0, 因 此这个计数器可以计由0 至7的数。
如8 位计数器可计由0至255 的数, 12
位计数器可计由0 至4095 的数, 16 位
则可计由0 至65535 的数。
微机原理第3章习题答案
微机原理第3章习题答案第3章习题参考答案1 分别指出下列指令中的源操作数和目的操作数的寻址方式。
答:源操作数目的操作数(1)MOV AX,[SI] 寄存器寻址寄存器间接寻址(2)MOV DI,100 寄存器寻址立即寻址(3)MOV [BX],AL 寄存器间接寄存器(4)MOV [BX][SI],CX 基址+变址寄存器(5)ADD DX,106H[SI] 寄存器变址(6)PUSH AX 寄存器(7)ADD DS:[BP],AX 带段超越寄存器间接寻址寄存器(8)OR AX,DX 寄存器寄存器2.设寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=0A0H,(BX)=100H,(BP)=10H,数据段中变量VAL的偏移地址为50H。
试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?答:操作数的寻址方式存储器操作数PA (1)MOV AX,[100H] 直接寻址20100H(2)MOV CX,ES:[BX] 带段超越的寄存器间接寻址32100H(3)MOV DX,[BX][SI] 基址+变址寻址200F0H(4)MOV AX,V AL[SI] 变址寻址200F0H(5)MOV BX,1234[BX] 基址寻址205D2H(6)MOV AX,[BP] 寄存器间接寻址15010H3. 判断下列指令有误错误,若有,则改之。
答:(1)PUSH CL 有错,对堆栈操作数总是16位的。
改为:PHSH CX (2)ADCAX,0ABH 无,只是CF的值是不确定的(0或1)(3)OUT 3EBH, AX 有,输出设备的端口地址若超过8位,应使用DX 间接寻址。
改为:MOV DX, 3EBHOUT DX,AX(4)MUL AL, CL 有错。
乘法指令中有AX或AL寄存器是隐含的。
改为:MUL CL(5)MUL AX, 25 有错。
乘法指令中不能用立即数。
改为:MOV BX,25MUL BX(6)ROL DX,5 有错。
(完整版)微型计算机原理(第三章课后答案)
微型计算机原理第三章80X86微处理器1.简述8086/8088CPU中BIU和EU的作用,并说明其并行工作过程。
答:(1)BIU的作用:计算20位的物理地址,并负责完成CPU与存储器或I/O端口之间的数据传送。
(2)EU的作用:执行指令,并为BIU提供所需的有效地址。
(3)并行工作过程:当EU从指令队列中取出指令执行时,BIU将从内存中取出指令补充到指令队列中。
这样就实现了取指和执行指令的并行工作。
2.8086/8088CPU内部有哪些寄存器?其主要作用是什么?答:8086/8088CPU内部共有14个寄存器,可分为4类:数据寄存器4个,地址寄存器4个,段寄存器4个和控制寄存器2个。
其主要作用是:(1)数据寄存器:一般用来存放数据,但它们各自都有自己的特定用途。
AX(Accumulator)称为累加器。
用该寄存器存放运算结果可使指令简化,提高指令的执行速度。
此外,所有的I/O指令都使用该寄存器与外设端口交换信息。
BX(Base)称为基址寄存器。
用来存放操作数在内存中数据段内的偏移地址,CX(Counter)称为计数器。
在设计循环程序时使用该寄存器存放循环次数,可使程序指令简化,有利于提高程序的运行速度。
DX(Data)称为数据寄存器。
在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。
(2)地址寄存器:一般用来存放段内的偏移地址。
SP(Stack Pointer)称为堆栈指针寄存器。
在使用堆栈操作指令(PUSH或POP)对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。
BP(Base Pointer)称为基址寄存器。
作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。
SI(Source Index)称为源变址寄存器。
SI存放源串在数据段内的偏移地址。
微机原理第3章课件
“与”指令应用例
开始 取待输出数的 偏移地址
取输入口地址
读入状态字
测试bit1位状态
N
Bit1=1?
Y
取输出口地址
输出一个字
7
“与”指令应用例
LEA SI,DATA MOV DX,3F8H WATT:IN AL,DX AND AL,02H JZ WATT MOV DX,38FH MOV AX,[SI] OUT DX,AX
49
程序控制指令
转移指令 循环控制 过程调用 中断控制
50
程序的执行方向
程序控制类指令的本质是:
控制程序的执行方向
决定程序执行方向的因素:
CS,IP
控制程序执行方向的方法:
修改CS 和IP ,则程序转向另一个代码段执行; 仅修改IP,则程序将改变当前的执行顺序,转向本
代码段内其它某处执行。
ATJAZENNSWDDTATAAATLLL,,,0222AHAHH CTJXZEMOSWPRTAAATALTLL,,,0282HAAHH JTJNENSZZT WAWLA,ATT2TT0H
JZ WATT
;ZF=1转移
MOV DX,38FH MOV AX,[SI] OUT DX,AX
17
二、移位指令
串传送指令常与无条件重复前缀连用
37
串传送指令
对比用MOV指令和MOVS指令实现将 200个字节数据从内存的一个区域送到 另一个区域的程序段。
P104例3-12
38
串传送指令例
用串传送指令实现200个字节数据的传送: LEA SI,MEM1 LEA DI,MEM2 MOV CX,200 CLD REP MOVSB HLT
34
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)使CX的b11, b7, b3 位清零。
(3)测试DX的b0 、 b8 位是否同是1.
(4 )以下可使寄存器AX和CF同时清零的指令 是
A. SUB AX, AX B. XCHG AX, AX
C. PUSH AX
D. XOR AX, AX
21
例3—28 统计负数的个数
从4000 H开始的单元中存放有32个有符号数, 统计负数的个数,存人 BUFFER单元中。
格式:
NOT OPRD
操作:
操作数按位取反再送回原操作数
注:
指令中的操作数不能是立即数,只能是 MEM/REG
指令的执行对标志位无影响
例:NOT BYTE PTR[BX] 16
(4)“异或”运算指令
格式:
XOR OPRD1,OPRD2
操作:
两操作数相“异或”,结果送目标地址
AL
00011010
CF
0
CF
0
CF
0
29
(3) 算术右移指令SAR
格式: SAR OPRD,I SAR OPRD,CL
有符号数 的右移
CF
30
算术右移 符号位保持不变
31
非循环移位指令的应用
左移可实现乘法运算 右移可实现除法运算
32
例3-30 16位无符号数 乘以10
8086指令系统(2)
1
三、逻辑运算和移位类
逻辑运算
移位操作
非循环移位 循环移位
2
逻辑运算和移位指令
3
指令类型
逻辑运算
与,或,非,异或
移位操作
非循环移位,循环移位
4
1、逻辑运算指令
逻辑运算指令对操作数的要求大多与ADD指令相同 。“非”运算指令要求操作数不能是立即数;(“非” 指令同INC,其他指令搭配规则同ADD)
除“非”运算指令外,其余指令的执行都会使标志 位OF=CF=0,AF不定,SF、 PF、 ZF有影响。
5
(1)“与”指令:
格式:
AND OPRD1,OPRD2
操作:
两操作数相“与”,结果送目标地址。
6
“与”指令的应用
实现两操作数按位相与的运算
AND BL,[SI]
使目标操作数的某些位不变,某些位清零。原 则是清零位与0相与,不变位与1相与。
AND AL,0FH
自身相与:使CF=OF=0,内容不变。
AND AX,AX
7
“与”指令应用例
从地址为3F8H的端口中读入一个字节数, 如果该数的bit1位为1,则可将DATA为首 地址的一个字从38FH端口输出;否则不能 进行数据传送。 编写相应的程序段。
8
“与”指令应用例
开始 取待输出数的 偏移地址
取输入口地址
读入状态字
测试bit1位状态
N
Bit1=1?
Y
取输出口地址
输出一个字
9
“与”指令应用例
LEA SI,DATA
MOV DX,3F8H
WATT:IN AL,DX
AND AL,02H
JZ WATT
;ZF=1转移
MOV DX,38FH ;输出1个字
MOV AX,[SI]
OUT DX,AX 10
OR AX,AX
12
“或”指令的应用例
对ASCII码进行偶校验:
OR AL,AL;影响标志 JPE GOON ; OR AL,80H GOON:….
PF=1转移
13
“或”指令的应用
将一个二进 制数9变为字 符‘9’
如何实现?
14
9变为字符‘9’
MOV AL , 9 OR AL ,30H
15
(3)“非”运算指令
(2)“或”运算 指令
格式:
OR OPRD1,OPRD2
操作:
两操作数相“或”,结果送目标地址
11
“或”指令的应用
实现两操作数相“或”的运算
OR AX,[DI]
使某些位不变,另一些位置“1”。原则是不 变位与0相或,置1位与1相或。
OR CL,0FH
自身相或:使OF=CF=0,结果内容不变。
19
源程序代码:
LEA SI,DATA MOV DX,3F8H WATT:IN AL,DX
AND AL,2AH;测试是否同时为1 CMP AL,2AH JNZ WATT
MOV DX,38FH;输出1个字 MOV AX,[SI] OUT DX,AX
20
问题(6)
按下列要求写出相应的指令和程序段。
(1)写出两条使BX内容清零的指令。
27
(2) 逻辑右移指令SHR
格式: SHR OPRD,I SHR OPRD,CL
无符号数 的右移
0
CF
移动一位后,若次高位与最高位不相等,则OF=1;否则OF=0
28
逻辑右移例:
MOV AL,68H
MOV CL,2
SHR AL,CL
AL
0
0110100 0
移动1次
0
移动2次
0
AL
00110100
例: XOR BL,80H
XOR AX,AX
两操作数自身相异或,结果为0,
CF=OF=0,达到清零目的。
17
(5)“测试”指令
格式:
TEST OPRD1,OPRD2
操作:
执行“与”运算,但运算的结果不送回目 标操作数。影响标志。
应用:
常用于测试某些位的状态。
18
例:
从地址为3F8H的端口中读入一个字节数,当 该数的bit1, bit3, bit5位同时为1时,可从 38FH端口将DATA为首地址的一个字输出, 否则就不能进行数据传送。 编写相应的程序段。
XOR DX , DX; DX=0,CF=OF=0 MOV SI , 4000H MOV CX ,20H; 32个数字
22
例3—28 统计负数的个数
AGAIN : MOV AL ,[SI] INC SI TEST AL ,80H;测试D7位 JZ NEXT;为正数转 INC DX ;为负数, DX 加1
25
1) 非循环移位指令
逻辑左移 算术左移 逻辑右移 算术右移
26
(1)算术左移和逻辑左移
算术左移指令SAL: SAL OPRD,1 SAL OPRD,CL
逻辑左移指令SHL: SHL OPRD,1 SHL OPRD,CL
有符号数 无符号数
移动一位后,若CF与最高不相等,则OF=1;否则OF=0
NEXT : DEC CX JNZ AGAIN ;CX不等于0转 MOV BUFFER , DX
23
源、目的操作数的搭配规则:
指令OR、 AND、 XOR、 TEST 注意事项:与MOV 基本相同。Leabharlann IMMMEMREG
24
2、移位指令
非循环移位指令 循环移位指令
注: 移动一位时由指令直接给出; 移动两位及以上,则移位次数由CL指定。 OPRD=MEM/REG