微机原理第4章1
微机原理与接口技术-第4-1章
例4-3 用键盘最多输入10个字符,并存 入内存变量Buff中,若按“Enter”键,则 表示输入结束。
用BIOS层功能调用实现 层功能调用实现 的源程序: 的源程序: .MODEL SMALL CR EQU 0DH .STACK 200H .DATA Buff DB 10 DUP(?) .CODE .STARTUP MOV CX, 0AH LEA BX, Buff
Windows层功能模块的调用
Win32 API使用堆栈来传递参数 API函数调用 C语言的消息框函数的声明: int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style );//参数 最后还有一句说明: Library: Use User32.lib.//说明这个函数的位置
API 函数的返回值
有的API 函数有返回值,如MessageBox 定义 函数有返回值, 有的 的返回值是int类型的数,返回值的类型对汇编 的返回值是 类型的数, 类型的数 程序来说也只有dword 一种类型,它永远放在 一种类型, 程序来说也只有 eax 中。如果要返回的内容不是一个 如果要返回的内容不是一个eax所能 所能 容纳的, 容纳的,Win32 API 采用的方法一般是返回一 个指针, 个指针,或者在调用参数中提供一个缓冲区地 干脆把数据直接返回到缓冲区中去。 址,干脆把数据直接返回到缓冲区中去。
.REPEAT MOV AH, 0H INT 16H .BREAK .IF AL==CR MOV [BX],AL INC BX .UNTILCXZ .EXIT 0 END
微机原理第四章课后习题答案
第四章课后作业(6—27)6.试按下列要求分别编制程序段。
(1)把标志寄存器中符号位SF置“1”。
(2)寄存器AL中高、低四位互换。
(3)由寄存器AX、BX组成一个32位带符号数(AX中存放高16位),试求这个数的负数。
(4)现有三个字节存储单元A、B、C,在不使用ADD和ADC指令的情况下,实现(A)+(B) C。
(5)用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1 形成奇数)。
答:(1) LAHFOR AH,80HSAHF(2) MOV CL,4ROL AL,CL(3) MOV CX,0NEG BXJC CHGJMP GOCHG: MOV CX,1GO: NEG AXSUB AX,CX(4) MOV CL,AMOV AL,BMOV X,ALCHECK:INC XDEC CLJNZ CHECK(5) OR CX,0001H7.试给出下列各指令的机器目标代码。
(1)MOV BL,12H [SI](2)MOV 12H [SI],BL(3)SAL DX,1(4)AND 0ABH [BP] [DI],1234H答:(1)100010 1 0 01 011 100 00010010=8A5C12H(2)100010 0 0 01 011 100 00010010=885C12H(3)110100 0 1 11 100 010=0D1E2H(4)100000 0 1 10 100 011 10101011 00000000 00110100 00010010=81A3AB003412H8.执行下列指令:STR1 DW ‘AB’STR2 DB 16DUP(?)CNT EQU $-STR1MOV CX,CNTMOV AX,STR1HLT执行完成之后,寄存器CL的值是多少?寄存器AX的值是多少?答:因为CNT=16+2=18,所以CX=18=0012H,所以CL=12H=0001,0010;AX中装入的是‘AB’的ASCII码值,其中‘A’在高位AH中,‘B’在低位AL 中,所以AX=4142H=0100,0001,0100,0010。
微机原理 第四章 微型计算机指令系统
例: 已知: DS=2000H; SI=1000H 指令: MOV [SI+disp],AX
青岛理工大学琴岛学院
寄存器间接相对寻址过程示意图
CPU
寄存器间接相对 SI=1000H
MOV [SI+20H] 程序 ,AX
CS 偏移1000H
DS
SS
ES
位移20H
青岛理工大学琴岛学院
寄存器相对寻址过程示意图
真正数据所在的地址
青岛理工大学琴岛学院
错误指令举例: 6)基址变址寻址: MOV [BX+CX],AX ; CX不能做变址寄存器 MOV [BX+BP],AX ; BP不能作为变址寄存器 操作数的有效地址 EA等于一个基址寄存器( BX或 MOV [BX+DI],ARRAY; BP)与一个变址寄存器( SI或DI)的内容之和;
总时间=基本执行时间+计算EA的时间+执行总线读/写周期的时间
指令的基本执行时间随指令类型的不同差异很大,访问存 储器既要执行总线的读/写周期,又要计算操作数的有效地址 EA,计算EA的时间又与指令的寻址方式有关。
青岛理工大学琴岛学院
4.2 8086/8088指令系统
数据传送类指令
算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理器控制类指令
21000H 20 位 物 理 地 址 真正数据所在的地址 Memory DS … 20000H
…
78H 21000H 56H
青岛理工大学琴岛学院
4)寄存器间接寻址:
此方式的操作数存放在存储器单元中,指令给出的 16位寄存器值就是该操作数所在存储单元的EA。
例: 已知: (DS)=2100H,(DI)=2000H 指令: MOV AX,[DI] ;(AX) ((DI)) 注:使用BX、SI、DI,操作数在DS段;BP时在SS段 其中寄存器只能是BX、SI、DI、BP
第4章(1)微机原理与接口技术(第三版)(王忠民)
第四章 80x86 指令系统—立即数寻址方式
MOV AX, 1234H
程序存储器
AH AL
12H 34H 操作码字节 指
34H 令
12H
码
第四章 80x86 指令系统—寄存器寻址方式
2)寄存器寻址方式 操作数存放在CPU的内部寄存器reg中:
8位寄存器r8: AH、AL、BH、BL、CH、CL、DH、DL 16位寄存器r16: AX、BX、CX、DX、SI、DI、BP、SP 4个段寄存器seg: CS、DS、SS、ES
微机原理与接口技术
西安邮电大学计算机学院 宁晓菊
第四章 80x86 指令系统(第一讲)
第一章 微型计算机系统导论(第一讲)
本章主要内容
1 80x86指令的寻址方式(3讲) 2 80x86指令系统(5讲)
第四章 80x86 指令系统(第一讲)
第一章 微型计算机系统导论(第一讲)
本讲主要内容
1 寻址方式概述 2 数据寻址方式之一:
80 21H
操作码
代
21H
码
AL
段
80
第四章 80x86 指令系统—I/O端口寻址方式
⑵ 间接端口寻址方式 MOV DX, 1234H OUT DX, AL
I/O接口 0001H
DX
12
34
0002H
……
AL
80 1234H
80
Thank you!
感谢
谢谢,精品课件 资料搜集
第四章 80x86 指令系统—立即数寻址方式
1)立即数寻址方式 指令中的操作数直接存放在机器代码中,紧跟在操
作码之后(操作数作为指令的一部分存放在操作码 之后的主存单元中)
长沙理工大学微机原理题目答案
长沙理⼯⼤学微机原理题⽬答案3.1 8086CPU与8088CPU有哪些相同之处:⼜有哪些区别?3.2 8086系统的物理地址是如何得到的?假如CS=2000H,IP=2100H其物理地址应是多少?3.3 什么是总线周期?8086CPU的⼀个总线周期包括多少时钟周期,什么情况下插⼊Tw等待周期:插⼊多少个Tw取决于什么因素?第四章习题4.1 需要定时刷新的存储器是(B ).A.SARMB.DRAMC.EPROMD.EEPROM4.2利⽤容量为4K×2b的SRAM芯⽚构成从A4000H到B7FFFH的内存,⽤这样的芯⽚需要( C ).A.40⽚B.60⽚C.80⽚D.100⽚4.3 突然断电后,计算机__C___中的数据将全部丢失.A.硬盘B.ROM和RAMC.RAMD.ROM4.4 下⾯的说法中,正确的是___D___.A.EPROM是不能改写的.B.EPROM是可以改写的,所以也是⼀种读写存储器.C.EPROM只能改写⼀次.D.EPROM是可以改写的,但他不能作为读写存储器.4.5 可直接存取16M字节内存的微处理器,其地址总线需_A___条.A.24B.16C.204.6某微机系统的存储器地址空间为A8000H~CFFFFH,若采⽤单⽚容量为16K×1位的SRAM芯⽚构成,回答以下问题:(1)系统存储容量为多少?(2)组成该存储系统共需该类芯⽚多少个?(3)整个系统应分为多少个芯⽚组:解4.6:(1)系统存储容量=CFFFFH-A80000H+1=28000H(B)=160(KB).(2)所需芯⽚=160K×8位/16K×1位=80(个).(3)该芯⽚字长不⾜8位,应以8位为⼀组构成字节单元.所以80个芯⽚应分成80/8=10个芯⽚组.4.7下列RAM各需要多少条地址线进⾏寻址,多少条数据I/O线?(1)64K×1 (2)256K×4解4.7: (1)16条地址线,⼀条数据I/O线.(2)需要18条地址线,4条数据I/O线.5.1、设DS=6000H,ES=2000H,SS=1500H,SI=00A0H,BX=0800H,BP=1200H,数据变量V AR为0050H。
微机原理 第四章答案
15、设(DS)=C000H,(C0010H)=0180H, (C0012H)=2000H,执行LDS SI,[10H]后, (SI)=?, (DS)=? (SI)=0180 H,(DS)=2000 H
REP STOSW 程序段的功能:
将起始地址为0404 H开始的80 H(128)个字单元清成0 或将起始地址为0404 H开始的100 H(256)个字节单元清成0
11
第4章 微型计算机原理作业情况
13、 设(BX)=6B30H,(BP)=0200H,(SI)=0046H, (SS)=2F00H,(2F246H)=4154H,试求执行 XCHG BX,[BP+SI]后, (BX)=?,(2F246H)=? (BX)=4154H (2F246H)=6B30H
6
第4章 微型计算机原理作业情况
8、分别执行下列指令,试求AL的内容及各状态标志位的状态。
(1) MOV AL,19H ;
ADD AL,61H ;(AL)=7AH
OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0
(2) MOV AL,19H ;
SUB AL,61
;(AL)=0DCH
OF=0 SF=1 ZF=0 AF=1 PF=0 CF=1
(1) MOV CL,20H[BX][SI] ;(CL)=0F6 H
(2) MOV [BP][DI],CX
;(1E4F6 H)=5678 H
(3) LEA BX,20H[BX][SI] ;(BX)=0056 H
MOV AX,2[BX]
;(AX)=1E40 H
微机原理 第4章
31
数据定义伪指令例
M2 11H 00H 11H 00H 11H 00H 44H 33H XX XX XX XX
M1
‘H’ ‘o’ ‘w’ ‘ ‘ ‘a’ ‘r’ ‘e’ ‘ ‘ ‘y’ ‘o’ ‘u’ ‘?’
M3
22H 11H XX 22H 11H XX 22H 11H XX
随机数
32
符号定义伪指令
格式:
符号名 EQU
表达式
操作:
汇编时用语句中的表达式代替程序中符号所在的地方
1. 定义符号常量,方便修改程序。 2. 某表达式多次出现时,用等值伪操作可以方便编程。 3. EQU定义的名称在程序中只能定义一次。 CONSTANT EQU 100 VAR EQU 30H+99H
汇编语言语句类型
指令性语句
CPU执行的语句,能够生成目 标代码
指示性语句
CPU不执行,在程序执行前由 汇编程序处理的说明性指令
7
指令性语句格式
[标号:] [前缀] 助记符 [操作数],[操作数] [ ;注释]
指令的符号地址 标号后要有冒号
操作码 注释前加分号
8
指示性语句格式
[名字] 伪指令助记符 操作数 [,操作数,…] [ ;注释]
5
完整汇编语言程序框架
STACK SEGMENT STACK ;定义堆栈段 DW 512 DUP (?) ;堆栈段有512字(1024字节)空间 TOP LABEL WORD STACK ENDS ;堆栈段结束 DATA SEGMENT ;定义数据段 STRING DB ’HELLO, EVERYBODY !’,0DH,0AH,’$’ DATA ENDS CODE SEGMENT ’CODE’ ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA ;建立DS段地址 MOV DS,AX MOV DX,OFFSET STRING MOV AH,9 INT 21H MOV AH,4CH INT 21H ;利用功能调用返回DOS CODE ENDS ;代码段结束 END START ;汇编结束,同时指明程序起始点
微机原理(4章)
《微机原理与应用》备课笔记B(第四章)第11次上课内容.第一部分指令观察1、算术运算指令观察——zlgc1,zlgc22、逻辑运算指令观察——zlgc33、条件转移指令观察------zlgc4第二部分第四章汇编语言程序设计4-1 概述、一、什么是汇编语言汇编语言是用指令助记符、符号地址、标号等书写程序的语言。
特点:易读、易写、易记,。
但是不如高级语言具有很好的通用性和可移植性,也不能像机器语言直接运行。
二、汇编语言上机过程4-2汇编语言基本语法4-2-1 汇编语言源程序实例——zlgc2,exmp1例1:把内存中从STRING 开始的字符串传送到BLOCK 开始的内存区域去.DAT1 SEGMENT STRING DB 'ABCD1234' NUMEQU $-STRING DAT1 ENDS DAT2 SEGMENT BLOCK DB 50 DUP(?) DAT2 ENDS COD SEGMENTASSUME CS:COD,DS:DAT1,ES:DAT2 START: MOVAX,DAT1MOV DS,AX MOV AX,SEG BLOCK MOV ES,AX MOV CX,NUM LEA SI,STRING MOV DI,OFFSET BLOCK LP: MOV AL,[SI] MOV ES:[DI],AL INC SI INCDILOOP LP MOV AH,4CH INT 21HCOD ENDS ENDSTART汇编语言语句种类——指令语句、伪指令语句、宏指令语句1) 指令语句——由指令系统中有的指令构成。
它指示CPU执行某种操作。
指令语句指令语句伪指令语句该指令语句汇编后将产生目标代码。
2)伪指令语句——属于说明性语句。
仅在汇编过程中起汇编管理和说明的作用,不产生目标代码。
实验二指令观察1、算术运算指令观察——zlgc1,zlgc22、逻辑运算指令观察——zlgc33、条件转移指令观察------zlgc44-2-2伪指令语句格式:名字伪操作指令[参数表] [;注释]1、段定义伪指令1)段定义伪指令格式:段名SEGMENT……段名ENDS用于定义源程序的各个逻辑段。
微机原理与接口技术 第04章 可编程定时器计数器8254
4.1 概述
输出(分频)
声音的产生:
对输出方波整形 变成正弦波,经放大处理接 到扬声器上,产生不同声音 的波形。
输入脉冲
若选择标准输入脉冲, 例1KHz,则当输入1000个标 准输入脉冲,需要1s,则当 计数值为1000时,输出端每 隔1s输出一个脉冲,实现了 定时。 计算初值:N=fclki / fouti
硬件启动:在写入计数初值后计数器不工作,只有当GATE信 号出现0到1的变化后,计数器才开始工作 初值自动重装:当计数结束后,即减1计数器减到规定值的时候, 存放在初值寄存器中的计数初值自动重新装入减1计数器,这种功 能称为初值自动装载(方式2和方式3具有此功能)
4.2.3 8254的工作方式
4.1 概述
实现定时/计数有三种不同的方法:
(1)软件定时:执行一个具有固定延迟时间的循环程序。
优点:不需外加硬件,灵活,定时较准确。 缺点:在定时过程中CPU不能做任何其它工作。
总结:适用于定时时间短的场合。
(2)硬件定时:采用中规模TTL或CMOS芯片外加电阻电容来实现的。 不同的时间间隔主要是通过配接不同的阻容值达到的。 优点:不占用CPU时间。 缺点:变换定时较难。 总结:适用于定时时间间隔固定的场合。
8254有6种工作方式:方式0~方式5。对于每一种工作方式, 由时钟输入信号CLK确定计数器递减的速率。门控信号GATE用于 允许或禁止计数器计数。计数结束时在输出线OUT上产生一个信 号。 无论采用哪一种工作方式,都会遵循下面几条原则: (1)控制字写入计数器时,所有的控制逻辑电路立即复位, 输出端OUT进入初始态(高电平或低电平)。 (2)计数初值写入后,要经过一个时钟上升沿和一个下降 沿,计数执行部件才开始计数。 (3)在时钟脉冲CLK的上升沿时,门控信号被采样。 (4)在时钟脉冲CLK的下降沿时,计数器作减1计数,输出 端OUT的波形也都是在时钟周期的下降沿时产生电平的变化。
微机原理及运用第4章
关系运算的操作数也必须为数字操作数。当关系成立时, 其结果为全 1;当关系不成立时,其结果为全 0。 汇编语言中的表达式不能构成单独语句, 只能是语句的 一个部分, 例如: MOVAX, BUF+2
ADDAL, VAL AND 0FH
JMPAGAIN+3 MOVBL, VB LE VA
4.1汇编语言基本概念
4.1.1汇编语言与机器语言
我们已经学过高级语言,例如BASIC语言或FORTRAN 语言,无论哪种语言,它都规定了一系列用于编写程序的语 句和应该遵循的语法规则。人们根据一种语言给定的语句及 其语法规则就可以写出程序,计算机则通过执行已编好的程 序来完成人们要求它完成的各种复杂功能。汇编语言也一样, 根据汇编语言的语句及其语法规则可以写出汇编语言程序。 但汇编语言与高级语言有较大的区别,汇编语言中的语句与 机器的种类和型号密切相关。
部分, 汇编时不形成任何目标码。注释必须以分号“;”开 头。 它可以作为语句的一个部分,也可以作为一个单独的语 句。
4.1.3汇编语言中的常数与表达式
1. 常数 常数可以分数值常数和字符串常数两类。数值常数按其 基数的不同,可以有二进制数、八进制数、十进制数、十六 进制数等几种不同的表示形式, 汇编语言中采用不同的后缀 加以区分。 B: 表示二进制数。 例如, 10110011B。
表示一条指令的这些字符常称为助记符。 我们必须指出, 采用助记符写出的程序,机器是不能直接执行的,因为上面 我们已经指出, 处理器在设计时是按二进制指令码考虑的。 所以,采用汇编语言编写的程序在执行前还必须将其“翻译” 成机器语言。通常将采用助记符指令写成的程序,称为源程 序,将它翻译成的机器语言程序称为目标程序。将汇编语言 的源程序翻译成目标程序的过程称为汇编过程或简称汇编。 汇编过程通常是由计算机完成的。它是通过执行一个专门完 成汇编的软件——称为汇编程序来实现的。既然写出的源程序 要由汇编程序将其翻译后才能执行,所以,我们编写的源程 序必须符合汇编程序的一系列要求或者规则,只有这样,你 的程序才能被正确地“翻译”。
微机原理 第4章
可擦除可编程的ROM(EPROM)
特点:芯片的上方有一个石英玻璃的窗口,通过紫 外线照射,芯片电路中的浮空晶栅上的电荷会形成光 电流泄漏走,使电路恢复起始状态,从而将写入的信 号擦去。
顶部开有一个圆形的石英窗口,用于紫外线透过擦除 原有信息 一般使用专门的编程器(烧写器)编程 编程后,应该贴上不透光封条
扩充存储器的数据宽度
用8b*32K的 EPROM芯片 27C256进行字节 数扩充,组成8b *64K的EPROM子 系统
RAS
动态RAM的刷新:
为保持电容CS中的电 荷不丢失,必须对动 态RAM不断进行读出 和再写入 CD数据线上分布电容
TS门控管
DRAM控制器的原理图
DRAM控制器的功能: (1)时序功能 (2)地址处理功能 (3)仲裁功能 P136
4.1.4 随机存取存储器RAM 1.SRAM 速度快 不需要刷新 片容量低 功耗大 2.DRAM 片容量高 需要刷新
4.选择存储器件的考虑因素
① 易失性:电源断开之后,存储器的内容是否 丢失。 ② 只读性 ③ 存储容量:每个芯片中的存储单元的总数。 ④ 速度:用存储器访问时间来衡量。访问时间 是指存储器接收到稳定地抵制信号到完成操作 的时间。 ⑤ 功耗
5. 半导体存储器的特点与分类
半导体存储器的特点: 1. 速度快,储存时间为ns级 2. 集成化 3. 非破坏性读出 半导体存储器分类: A. 从器件组成角度: 1.双极性存储器TTL(Transistor- Transistor Logic), 特点是速度快,功耗较低,集成度低。 2.单极性存储器是用MOS(Metal-Oxide-Semiconductor) 制成的存储器, 特点是集成度高,功耗低,价格便宜。
4 微机原理第四章 16位微处理器
20 位
AX BX CX DX
16 位 段 寄 存 器
指令指针
SP
BP DI SI
CS DS SS ES IP 内部暂存器 外部总线
EU
16 位
数据总线
运 算 寄 存器
总线
BIU
执行 控制 电路
控制 逻辑
8088 8位 8086 16位
A L U
指令对列
1 2 3 4
标志寄存器
8086为 6 字节
(( 5 )在执行转移指令时,指令队列中的原有内容被自动清 (3) 4 在执行指令的时,需要访问 EU又没有总线访问时, M或I/O设备,8088 EU会请求 BIU 1)当指令列已满,而且 )每当 8086 的指令队列中有两个空字节( 有一 2 EU 准备执行一条指令时,它会从指令队列取指 除, BIU 会接着往指令队列中装入另一个程序段中的指令。 便进入空闲状态。 BIU ,完成访问内存或 I/O端口的操作。 个空字节)时, BIU就会自动把指令取到指令队列中。 令,然后用几个时钟周期去执行指令。
16 位
总线接 口单元 (BIU)
总线 控制 逻辑 外部总线
8088 8位 8086 16位
运 算 寄 存器
指令对列
A L U
执行 控制 电路
8086为 6 字节
1
2
3
4
标志寄存器
执行单元 (EU)
4.1 8086的结构 从功能上分为两部分:BIU和EU, 内部结构如图所示。
4.2.1 执行单元EU
片内总线等
1. 第一代——4位或低档8位微处理器 第一代微处理器的典型产品是Intel公司
1971年研制成功的4004(4位CPU)及1972年 推出的低档8位CPU 8008。
微机原理与接口技术(科学出版社)第4章课后习题及答案
微机原理与接口技术第四章课后习题1.指令主要有哪些分类方式? 其主要类别是什么?答:操作数、级别、功能。
操作数:无操作数、单操作数、双操作数三操作数;级别:机器指令和汇编指令功能:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;2.80X86的寻址方式有哪些?它们的具体含义是什么?答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式(1)立即寻址方式:操作对象是这个操作数本身(2)寄存器寻地址:操作对象是寄存器中的内容(3)存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容(4)端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象3. 指出下列各指令中源操作数和目的操作数的寻址方式:⑴MOV BX,WORD PTR[2200H] ⑵ AAA⑶JUM 2200H ⑷ LES DI,[2100H]⑸ MOV [BX+SI+8], BX ⑹ ADD AX,[BP+3000H]答:⑴MOV BX, WORD PTR[2200H] 源操作数:直接寻址;目的操作数:寄存器寻址⑵AAA 源操作数:寄存器寻址AL(也称隐含寻址);目的操作数:寄存器寻址⑶JUM 2200H 程序转移段内直接寻址方式⑷LES DI,[2100H] 源操作数:直接寻址;目的操作数:寄存器寻址⑸MOV [BX+SI+8], BX 源操作数:寄存器寻址;目的操作数:相对基址变址寻址⑹ADD AX,[BP+3000H] 源操作数:直接寻址;目的操作数:寄存器相对寻址4. 设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500 H,则:(1)10202H(2)40300H(3)21010H(4)42156H(5)31510H5.写出清除AX寄存器内容的方法并比较。
微机原理第4章习题与答案
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
……
JMP GOON
答案:
(1)字节变量,范围在0~255
(2)定义段的伪指令为SEGMENT
(3)BETA必须先定义
(4)EQU不能重复定义,在下一次定义前必须用PURGE撤消
MOV BX, F1
答案:
(1)
DATA SEGMENT PARA 'DATA' AT 46H
QA EQU 255;QA=255
QA1=QA GT 3000;255大于3000,命题假,QA1=0
QA2=0FFFH;QA2=0FFFH
QA3 EQU QA2 XOR 255;QA3=0FFFH⊕0FFH=0F00H
AND AX, 0FFH;AX=0045H
MOV BX, WORD PTR G1;BX=0FF20H
MOV BX, 255 AND 0FH;BX=000FH
ADD AX, OFFSET F2;AX=1245H
MOV BX, F1;BX=2211H
4.以下程序的执行结果是_______。
ADB‘1234’
BDW5 DUP(2,3 DUP(0))
CDW‘AB’,’C’,’D’
L1:MOVAL,TYPE B
MOVBL,LENGTHB
MOVAH,SIZE A
MOVBH,SIZE C
MOVCL,TYPEL1
MOVCH,SIZEB
答案:AX=0102H,BX=0205HCX=0AFFH
微机原理第四章
机 了磁芯存储器的地位。目前,绝大多数计算机都使用的是
原 半导体存储器。
理
2.按存储器的存取方式分类
按存取方式可分为随机存取存储器、只读存储器等
(1) 随机存储器 RAM (Random Access Memory)
随机存储器(又称读写存储器)是指通过指令可以随机
地对各个存储单元进行读和写,在一切计算机系统中,主
1intel2164a的内部结构8位8位a0a1aa2a3a4a5a6a7vddvss128128存储矩阵1128行译码器128128存储矩阵128读出放大器读出放大器128读出放大器读出放大器微机原理地址锁存器14io门输出缓冲器dout行时钟缓冲器列时钟缓冲器写允许时钟缓冲器数据输入缓冲器rascaswedin121128列译码器128读出放大器128读出放大器121128列译码器128128存储矩阵128128存储矩阵1128行译码器?存储体
动态RAM的基本存储单元,由一个MOS管T1和位于其 栅极上的分布电容C构成。当栅极电容C上充有电荷时,
表示该存储单元保存信息“1”。反之,当栅极电容上没
有电荷时,表示该单元保存信息“0”。
动态RAM存储单元实质上是
字选线
微
依靠T1管栅极电容的充放电原理 来保存信息的 ,电容上所保存的
机 原
电荷就会泄漏。在动态RAM的使
(2) Intel 2164A的外部结构:
Intel 2164A是具有16个引脚的双列直插式芯片。
• A0~A7:地址信号的输入引脚; • R A S :行地址选通信号输入引脚;
• C A S :列地址选通信号输入引脚;
• W E :写允许控制信号输入引脚;
微 机
• DIN :数据输入引脚; • DOUT:数据输出引脚; • VDD:+5V电源引脚;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢用于地址表达式,例: LEA SI,TAB+3
若TAB的偏移地址为1000H,则汇编后的形式 为:
LEA SI,[1003H]
Байду номын сангаас
2)逻辑运算符—— AND、OR、XOR、NOT
逻辑运算符只能用于数字表达式中。 例:MOV CL,36H AND 0FH 经汇编后:MOV CL,06H
4)取地址运算符——SEG、OFFSET
SEG:取变量/标号的段地址 OFFSET:取变量/标号的偏移地址
例:VAR DB 12H
……
MOV BX,OFFSET VAR ;取变量VAR的偏移地址 MOV AX,SEG VAR ;取变量VAR的段地址
注意,以下指令的异同:
MOV BX, OFFSET VAR LEA BX, VAR
例如:以下为同一条指令写的注释 1)MOV CX,100 ;100送CX 2)MOV CX,100 ;给计数器送初值
显然,第二种写法要比第一种写法要好。
4.1.3 数据项与表达式
数据项包括常量、变量、标号及表达式。 1.常量
➢二进制数,以B结尾。如01001101B。 ➢十进制数,如85。 ➢十六进制数,以H结尾。第1个数字为A-F时,前
– 对指令性语句——0,1,2个 – 对指示性语句——根据需要而定 – 操作数之间以逗号分隔 – 操作数可以是——寄存器、存储单元、常数或表达式
例如:MOV BYTE PTR[DI+BX+10],16*8+TABLE
注解——以分号开头,可放在指令后,也可 单独一行。
注意注解的写法。要写本指令在程序中的作 用,而不要写指令的操作。
注意,不要把逻辑运算符与逻辑运算指令混淆: 例:AND AX, 3FC0H AND 0FF00H 经汇编后:AND AX,3F00H
3)关系运算符——EQ、NE、LT、GT、LE、GE
➢关系运算的结果是一个逻辑值:真或假 关系为真,结果为全1 关系为假,结果为全0
例:MOV BX,PORT GT 300H 若PORT的值大于300H,则汇编后为: MOV BX,0FFFFH 否则汇编后为: MOV BX,0
指令性语句汇编时生成机器码; 指示性语句汇编时不生成机器码。
汇编语言的一个实例: hello.asm
data SEGMENT Hello DB ‘Hello, world!’,0DH,0AH,’$’ data ENDS prog SEGMENT
ASSUME CS:prog,DS:data start: MOV AX,data
➢标号作为转移指令或CALL指令的转移地址。
3.变量
变量就是内存中的数据区。 变量名是存储单元的符号地址(或数据区的 名字)。
➢变量的三个属性:
✓段地址—变量所在段的段地址 ✓偏移量—变量单元地址与段起始地址之间的位移量。 ✓类 型—有BYTE、WORD和DWORD三种。
➢变量在程序中作为存储器操作数被引用。
微机原理第4章1
汇编语言程序框架如下:
stack
stack data
data
SEGMENT PARA ‘stack‘
DB 100 DUP(‘stack’) ENDS SEGMENT
<数据、变量在此定义>
ENDS
code SEGMENT ASSUME CS:code, DS:data, ES:data
start: MOV AX, data
MOV DS, AX MOV ES, AX
<加入你自己的程序段>
MOV AL, 4CH INT 21H
code ENDS END start
堆栈段 数据段
代码段
4.1.2 汇编语言的语句与格式
汇编语言的语句有两种:
指令性语句——由8086指令助记符构成的语句 指示性语句——由伪指令构成的语句
面应加0,如0F160H。 ➢字符串:用引号括起来的1个或多个字符。如
‘ERROR!’, ’A’,汇编时被翻译成对应的ASCII 码45H,52H,52H,4FH,52H,21H和41H。
2.标号——指令所在单元的符号地址
➢有三个属性: 段地址:即标号所在段的段地址; 偏移量:标号所代表存储单元的段内偏移地址; 类 型:NEAR或FAR: NEAR—表示标号所在语句与转移指令/ 调用指令在同一码段内,跳转时 只需改变IP即可。 FAR—标号所在语句与转移指令/调用 指令不在同一代码段内。 若没有对类型进行说明,默认为NEAR。
MOV DS,AX
LEA DX,hello
MOV AH,9 INT 21H MOV AH,4CH INT 21H
prog ENDS END start
语句的构成元素:
标号——指令的符号地址,表示该指令的起始存 储地址,后加冒号
名字——段、过程、变量的名字,用来代表它们 在存储器中的地址
指令助记符——8086助记符、伪指令 操作数——即指令的操作对象
指令性语句的格式为:
标号: 指令助记符 目的操作数,源操作数 ;注释
指示性语句的格式为:
名字 伪指令 操作数1,操作数2,…,操作数n ;注释
注:各部分之间至少要用一个空格作为分隔符。
●指令性语句由CPU执行,每一条指令性语 句都有一条机器码指令与其对应;
●指示性语句由汇编程序执行。它指出汇编 程序应如何对源程序进行汇编,如何定义变 量,分配存储单元以及指示程序开始和结束等。 指示性语句没有机器码指令相对应。
标号和变量名的使用规则
– 组成:A-Z(不分大小写), 0-9, ?@ . _ $ – 不能以数字开头,句号(.)只能作为首字符
– 长度小于31个字符 – 不能与保留字(指令助记符、伪指令、预定义符
号等)重名 – 不能重复定义
例如:
正确的:L1, AGAIN, NEXT, _GO, OK_1 错误的:4M, LOOP, AAA, #HELP, +ONE
4.表达式
➢表达式是常数、寄存器、标号、变量与 运算符的组合。
➢有数字表达式和地址表达式两种。
➢汇编时按优先规则对表达式进行计算, 计算出具体的数值或地址。运行时不能改 变。
➢表达式中的运算符有6类:算术、逻辑、 关系、取地址、属性、杂类。
1)算术运算符—— +、-、*、/,MOD
➢用于数字表达式,例: MOV AX,4*1024