文档库 最新最全的文档下载
当前位置:文档库 › 微机原理 CH4(1)

微机原理 CH4(1)

微机原理 CH4(1)
微机原理 CH4(1)

1、画出下列语句中的数据在存储器中的存储情况.

ARRAYB DB 63,63H,’ABCD’,3DUP(?),2 DUP(1,3) ARRAYW DW 1234H,5,’AB’,’CD’,?,2 DUP(1,3)

2、程序中数据定义如下:

DATA1 DW ?

DATA2 DB 32 DUP(?)

DATA3 DD ?

DLENGTH EQU $-DATA1

此时DLENGTH=?

3、程序中数据定义如下:

ARRAY DB ‘ABCDEF’

RESULT DB ?

TABLE DW 20 DUP(?)

则执行指令 MOV AX,TYPE RESULT后,AX=?

MOV BX,TYPE TABLE 后, BX=?

MOV CX,LENGTH TABLE 后,CX=?

MOV DX,LENGTH ARRAY后,DX=?

MOV SI,SIZE TABLE 后,SI=?

MOV DI,SIZE ARRAY 后,DI=?

4、按下列要求在数据段中依次书写各数据定义语句:

1)以DA1为首字节的连续存储单元中存放20H个重复的数据序列:

2,3,10个4,一个7

2)DA2为字符串变量,用字变量(DW)设置一字符

串;’STUDENTS’(按此顺序存放在各单元中)

3)用等值语句给符号COUNT赋值以DA1为首址的数据区共占有

的字节数,此等值语句必须放在最后一语句。

5、BUFF DB ‘ABD$QC%$A……XYZ’

CONT EQU $-BUFF

CLD

LEA DI,BUFF

MOV CX,CONT

MOV AL,’$’

XOR DX,DX

NEXT: REPNZ SCASB

CMP CX,0

JZ K1

INC DX

JMP NEXT

K1:………….

上述程序段运行后,DX中的值表示的意义是什么?

6、现有一子程序:

SUB1 PROC

TEST AL,80H

JE PLUS

TEST BL,80H

JNE EITO

JMP XCHANGE

PLUS: TEST BL,80H

JE EITO

XCHANGE: XCHG AL,BL

EITO: RET

SUB1 ENDP

试回答:

1)子程序的功能是什么?

2)如果调用子程序前,AL=9AH,BL=77H,那么返回主程序时,

AL= ?, BL=?

7、假设程序中的数据定义如下:

LNAME DB 30DUP(?)

ADDRESS DB 30DUP(?)

CITY DB 15DUP(?)

CODE_LIST DB 1,7,8,3,2

(1)用一条MOV指令将LNAME的偏移地址放入AX.

(2)用一条指令将CODE_LIST的头两个字节的内容放入SI. (3)写一条伪操作使CODE_LIST的值等于CODE_LIST域的实际长度。

微机原理第4章练习题及答案

第4章 80x86指令系统 一、自测练习题 ㈠选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI) 2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。 A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI) 4.JMP WORD PTR[DI]是( )。 A.段内间接转移B.段间间接转移 C.段内直接转移D.段间直接转移 5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。 A.段内间接转移B.段间间接转移 C..段内直接转移D.段间直接转移 6.INC指令不影响( )标志。 A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。 A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。 A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是()。 A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用指令()完成同样的功能。 A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB 11.对于下列程序段: AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN 可用指令()完成。

微机原理习题解答第四章-

第四章 1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DL=01H

DH=10H (1000H=10H (2000H=01H 2.要求同题4.1,程序如下: MOV AL,50H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 解:寄存器及存储单元的内容如下: BL=00H BH=20H CL=00H CH=30H

DL=20H DH=20H BP=1000H (1000H=50H (2000H=20H 3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。 (1不用数据块传送指令。 (2用单个传送的数据块传送指令。 (3用数据块成组传送指令。 解:(1LEA SI,1000H LEA DI,2000H MOV CX,100 L1: MOV AX,[SI] MOV [DI],AX LOOP L1 HLT (2LEA SI,1000H LEA DI,2000H

微机原理第7章习题与答案

习题 一、选择题 1.在程序控制传送方式中,_______可提高系统的工作效率。 A. 无条件传送 B. 查询传送 C. 中断传送 D.以上均可 答案:C 2.在8086的中断中,只有______需要硬件提供中断类型码。 A.外部中断 B.可屏蔽中断 C.不可屏蔽中断 D.内部中断 答案:B 3.在中断响应周期,CPU从数据总线上获取______。 A.中断向量的偏移地址 B.中断向量 C.中断向量的段地址 D.中断类型码 答案:D 4.执行INT n指令或响应中断时,CPU保护现场的次序是______。 A.FLAGS寄存器(FR)先入栈,其次是CS,最后是IP B.CS在先,其次是IP,最后FR入栈 C.FR在先,其后一次是IP,CS D.IP在先,其次是CS,最后FR 答案:A 5.在PC/XT中,NMI中断的中断向量在中断向量表中的位置_______。 A.是由程序指定的 B.是由DOS自动分配的 C.固定在0008H开始的4个字节中 D.固定在中断向量表的表首 答案:C 6.中断调用时,功能调用号码应该_______。 A.写在中断指令中 B.在执行中断指令前赋给AH C. 在执行中断指令前赋给AX D. 在执行中断指令前赋给DL 答案:B 7.若8259A的ICW2设置为28H,从IR3引入的中断请求的中断类型码是_____。 A. 28H B.2BH C.2CH D.2DH 答案:B 8.8259A有3中EOI方式,其目的都是为了_____。 A.发出中断结束命令,使相应的ISR=1 B. 发出中断结束命令,使相应的ISR=0 C. 发出中断结束命令,使相应的IMR=1 D. 发出中断结束命令,使相应的IMR=0答案:B 9.8259A特殊全嵌套方式要解决的主要问题是______。 A.屏蔽所有中断 B.设置最低优先级 C.开发低级中断 D.响应同级中断 答案:D

微机原理第四章课后习题答案

第四章课后作业(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) LAHF OR AH,80H SAHF (2) MOV CL,4 ROL AL,CL (3) MOV CX,0 NEG BX JC CHG JMP GO CHG: MOV CX,1 GO: NEG AX SUB AX,CX (4) MOV CL,A MOV AL,B MOV X,AL CHECK:INC X DEC CL JNZ CHECK (5) OR CX,0001H 7.试给出下列各指令的机器目标代码。 (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 =81A3AB003412H 8.执行下列指令: STR1 DW ‘AB’ STR2 DB 16DUP(?) CNT EQU $-STR1 MOV CX,CNT MOV AX,STR1 HLT 执行完成之后,寄存器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。 9.JMP FAR PTR ABCD (ABCD是符号地址)的转移方式是什么? 答:段间直接转移。 10.按下列指令写出相应指令或程序段。 (1)写出两条使AX寄存器内容为0的指令。 (2)使BL寄存器中的高、低4位互换。 (3)现有两个带符号数分别在X1和X2变量中,求X1/X2,商和余数分别送入Y1和Y2中。 (4)屏蔽BX寄存器中的b4、b6、b11位。 (5)将AX寄存器的b4、b14位取反,其它位不变。 (6)测试DX寄存器的b0、b9位是否为“1”。 (7)使CX寄存器中的整数变为奇数(如原已经是奇数,则不变)。 答:(1)MOV AX,0 XOR AX,AX (2)MOV CL,4 ROL BL,CL (3)MOV AX,X1 CWD IDIV X2 MOV Y1,AX MOV Y2,DX (4)AND BX,1111 O111 1O10 1111 (5)XOR AX,0100 0000 0001 0000 (6)MOV AX,DX RCR AX,1 JC B0Y ;转向表示b0是1的标号为B0Y的程序段

微机原理实验报告

西安交通大学实验报告 课程_微机与接口技术第页共页 系别__生物医学工程_________实验日期:年月日 专业班级_____组别_____交报告日期:年月日 姓名__ 学号__报告退发 ( 订正、重做 ) 同组人_教师审批签字 实验一汇编语言程序设计 一、实验目的 1、掌握Lab6000p实验教学系统基本操作; 2、掌握8088/8086汇编语言的基本语法结构; 3、熟悉8088/8086汇编语言程序设计基本方法 二、实验设备 装有emu8086软件的PC机 三、实验内容 1、有一个10字节的数组,其值分别是80H,03H,5AH,FFH,97H,64H,BBH,7FH,0FH,D8H。编程并显示结果: 如果数组是无符号数,求出最大值,并显示; 如果数组是有符号数,求出最大值,并显示。 2、将二进制数500H转换成二-十进制(BCD)码,并显示“500H的BCD是:” 3、将二-十进制码(BCD)7693转换成ASCII码,并显示“BCD码7693的ASCII是:” 4、两个长度均为100的内存块,先将内存块1全部写上88H,再将内存块1的内容移至内存块2。在移动的过程中,显示移动次数1,2 ,3…0AH…64H(16进制-ASCII码并显示子

程序) 5、键盘输入一个小写字母(a~z),转换成大写字母 显示:请输入一个小写字母(a~z): 转换后的大写字母是: 6、实现4字节无符号数加法程序,并显示结果,如99223344H + 99223344H = xxxxxxxxH 四、实验代码及结果 1.1、实验代码: DATA SEGMENT SZ DB 80H,03H,5AH,0FFH,97H,64H,0BBH,7FH,0FH,0D8H;存进数组 SHOW DB 'THE MAX IS: ','$' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;把数据的基地址赋给DS MOV DS,AX MOV DX,OFFSET SHOW ;调用DOS显示字符串 MOV AH,09H INT 21H MOV SI ,OFFSET SZ ;数组的偏移地址赋给SI MOV CX,10 ;存进数组的长度给CX MOV DH,80H ;将数组的第一个数写进DH NEXT: MOV BL,[SI] ;将数组的第一个数写进BL CMP DH,BL ;比较DH和BL中数的到校 JAE NEXT1 ;如果DH中的数大于BL中,将跳转到NEXT1 MOV DH,BL ;如果DH中的数小于BL中,将BL中的数赋给DH NEXT1: INC SI ;偏移地址加1 LOOP NEXT;循环,CX自减一直到0,DH中存数组的最大值 ;接下来的程序是将将最大值DH在屏幕上显示输出 MOV BX,02H NEXT2: MOV CL,4 ROL DH,CL ;将DH循环右移四位

微机原理实验报告

汇编语言程序设计实验 一、实验内容 1.学习并掌握IDE86集成开发环境的使用,包括编辑、编译、链接、 调试与运行等步骤。 2.参考书例4-8,P165 (第3版161页)以单步形式观察程序的 执行过程。 3.修改该程序,求出10个数中的最大值和最小值。以单步形式观 察,如何求出最大值、最小值。 4.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态。 二、实验目的 1.学习并掌握IDE86集成开发环境的使用 2.熟悉汇编语言的基本算法,并实际操作 3.学会利用IDE86进行debug的步骤 三、实验方法 1.求出10个数中的最大值和最小值 (1)设计思路:利用冒泡法,先对数据段的10个数字的前2个比 较,把二者中大的交换放后面。在对第二个和第三个数比较,把 二者中较大的交换放后面,依此类推直到第十个数字。这样第十 位数就是10个数里面最大的。然后选出剩下9个数字里面最大 的,还是从头开始这么做,直到第九个数字。以此类推直到第一 个数字。

(2)流程图 2.求1到100 的累加和,并用十进制形式将结果显示在屏幕上。 要求实现数据显示,并返回DOS状态

(1)设计思路:结果存放在sum里面,加数是i(初始为1),进行 100次循环,sum=sum+I,每次循环对i加1. (2)流程图: 四、 1.求出10个数中的最大值和最小值

DSEG SEGMENT NUM DB -1,-4,0,1,-2,5,-6,10,4,0 ;待比较数字 DSEG ENDS CODE SEGMENT ASSUME DS:DSEG,CS:CODE START:MOV AX,DSEG MOV DS,AX LEA SI,NUM MOV DX,SI MOV CL,9 ;大循环计数寄存器初始化 NEXT1:MOV BL,CL ;大循环开始,小循环计数器初始化MOV SI,DX NEXT2:MOV AL,[SI+1] CMP [SI],AL ;比较 JGGONE ;如果后面大于前面跳到小循环末尾CHANGE:MOV AH,[SI] ;交换 MOV [SI+1],AH MOV [SI],AL JMP GONE GONE:add SI,1 DEC BL JNZ NEXT2

微机原理实验

微型计算机原理实验报告 学号 姓名海米提。热合木江班级测控0902班

实验一显示程序实验 一般来说,程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS功能 调用(INT 21H)。 流程图

2.试验程序 DA TA SEGMENT MES DB 'Show a as hex:', 0AH,0DH,'$' SD DB 'a' DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES MOV AH, 09H INT 21H MOV DI, OFFSET SD MOV AL, DS:[DI] AND AL, 0F0H SHR AL,4 CMP AL, 0AH JB C2 ADD AL, 07H C2: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AL, DS:[DI] AND AL, 0FH CMP AL, 0AH JB C3 ADD AL, 07H C3: ADD AL, 30H MOV DL, AL MOV AH, 02H INT 21H MOV AX, 4C00H INT 21H CODE ENDS END START

实验二数据传送实验 三、实验内容 将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上 1.试验程序 DA TA SEGMENT MSR DB "HELLO,WORLD!$" LEN EQU $- MSR DDATA ENDS EXDA SEGMENT MSD DB LEN DUP() EXDA ENDS MYSTACK SEGMENT STACK DW 20 DUP() MYSTACK ENDS CODE SEGMENT ASSUME CS:CODE, DS:DDA TA, ES:EXDA START: MOV AX, DDATA MOV DS, AX MOV AX, EXDA MOV ES,AX MOV SI, OFFSET MSR MOV DI, OFFSET MSD MOV CX, LEN NEXT: MOV AL, [SI] MOV ES:[DI], AL INC SI INC DI DEC CX JNZ NEXT PUSH ES POP DS MOV DX, OFFSET MSD MOV AH, 9 INT 21H MOV AX, 4C00H

微机原理及应用 第4章 习题及答案

CH04 存储系统 习题与思考题 1.存储器的哪一部分用来存储程序指令及像常数和查找表一类的固定不变的信息?哪一部分用来存储经常改变的数据? 解答:只读存储器ROM;随机存储器RAM。 2.术语“非易失性存储器”是什么意思?PROM和EPROM分别代表什么意思? 解答:“非易失性存储器”是指当停电后信息会丢失;PROM--可编程序的只读存储器PROM(Programmable ROM),EPROM--可擦除的可编程的只读存储器EPROM(Erasible Programmable ROM)。 3.微型计算机中常用的存储器有哪些?它们各有何特点?分别适用于哪些场合? 解答: 双极型半导体存储器 随机存储器(RAM) MOS存储器(静态、动态) 主存储器可编程只读存储器PROM 可擦除可编程只读存储器EPROM,EEPROM 只读存储器(ROM)掩膜型只读存储器MROM 快擦型存储器 存储器磁盘(软盘、硬盘、盘组)存储器 辅助存储器磁带存储器 光盘存储器 缓冲存储器 4.现代计算机中的存储器系统采用了哪三级分级结构,主要用于解决存储器中存在的哪些问题? 解答:目前在计算机系统中通常采用三级存储器结构,即使用高速缓冲存储器、主存储器和辅助存储器,由这三者构成一个统一的存储系统。从整体看,其速度接近高速缓存的速度,其容量接近辅存的容量,而位成本则接近廉价慢速的辅存平均价格。三级结构主要用于解决速度、容量和成本的问题。 5.试比较静态RAM和动态RAM的优缺点,并说明有何种方法可解决掉电时动态RAM中信息的保护。 解答:静态RAM----存储一位信息的单元电路可以用双极型器件构成,也可用MOS器件构成。双极型器件构成的电路存取速度快,但工艺复杂,集成度低,功耗大,一般较少使用这种电路,而采用MOS器件构成的电路。静态RAM的单元电路通常是由6个MOS 管子组成的双稳态触发器电路,可以用来存储信息“0”或者“1”,只要不掉电,“0” 或“1”状态能一直保持,除非重新通过写操作写入新的数据。同样对存储器单元信息的读出过程也是非破坏性的,读出操作后,所保存的信息不变。使用静态RAM的优点是访问速度快,访问周期达20~40ns。静态RAM工作稳定,不需要进行刷新,外部电

微机原理实验一报告

2.1 寻址方式与基本指令实验 2.1.1 实验目的 1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。 2、掌握汇编语言程序设计上机过程, 掌握汇编语言源程序结构,为后续汇编语言程序设计 打好基础。 3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法 2.1.2 实验预习要求 1、认真阅读本书第一部分第1章,熟悉汇编语言程序设计上机步骤。 2、认真阅读本书第三部分,熟悉DEBUG调试工具的使用方法。 3、复习80x86操作数寻址方式及基本指令(数据传送、算术运算和逻辑运算等)。 4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行 环境的问题除外),以便在实验时进行验证。 2.1.3 实验内容 1、读懂下面的源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ文件和EX11.LST文件,连接生成EX11.EXE文件,用EXIT打开EX11.LST文件,了解.LST 文件包含的信息,使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。 ○1程序装入后,代码段寄存器CS的内容为1138H,代码段第一条可执行指令“MOV AX DA TA”对应的机器代码为0000B83711H,它是一个——字节指令,注意观察执行该指令是IP 值的变化情况,该指令源操作数DATA的寻址方式是立即数寻址方式,其值是1137。 ○2执行完“MOVDSDA TA”指令后,数据段寄存器DS的内容为1127H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地址分别为11270H、11271H和11272H。 ○3程序中第一条“ADDAL[BX]”指令对应的机器代码为0008 8A07H,它是一个四字节指令,注意观察执行该指令时IP值的变化情况;该指令中源操作数的寻址方式为寄存器间接寻址方式,该操作数所在的存储单元的逻辑地址(DS):(BX)为1137:0000,其物理地址为11370H,执行完该指令后(AL)=37H,CF=0H,OF=0H,ZF=0H,SF=0H,AF=0H,PF=0H;计算结果正确,结果是负数 ○4执行完第二条“ADD AL [BX]”指令后(AL)=82H,CF=0H,OF=0H,ZF=0H,SF=1H,AF=0H,PF=0H;计算结果正确,结果是负数 ○5指令“MOV SUM,AL”中,目的操作数的寻址方式为寄存器直接寻址方式。该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元值变为00H。 DA TA SEGMENT NUM DB 82H,68H,88H SUM DB ? DA TA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DA TA START: MOV AX,DA TA MOV DS,AX

微机原理习题解答第四章

第四章 1.在下列程序运行后,给相应的寄存器及存储单元填入运行的结果: MOV AL,10H MOV CX,1000H MOV BX,2000H MOV [CX],AL XCHG CX,BX MOV DH,[BX] MOV DL,01H XCHG CX,BX MOV [BX],DL HLT 解:寄存器及存储单元的内容如下: AL=10H BL=00H BH=20H CL=00H CH=10H DL=01H DH=10H (1000H)=10H (2000H)=01H 2.要求同题4.1,程序如下: MOV AL,50H MOV BP,1000H MOV BX,2000H MOV [BP],AL MOV DH,20H MOV [BX],DH MOV DL,01H MOV DL,[BX] MOV CX,3000H HLT 解:寄存器及存储单元的内容如下: BL=00H BH=20H CL=00H CH=30H DL=20H DH=20H BP=1000H (1000H)=50H

(2000H)=20H 3.自1000H单元开始有一个100个数的数据块,若要把它传送到自2000H开始的存储区中去,可以采用以下三种方法实现,试分别编写程序以实现数据块的传送。 (1)不用数据块传送指令。 (2)用单个传送的数据块传送指令。 (3)用数据块成组传送指令。 解:(1)LEA SI,1000H LEA DI,2000H MOV CX,100 L1: MOV AX,[SI] MOV [DI],AX LOOP L1 HLT (2)LEA SI,1000H LEA DI,2000H MOV CX,100 CLD L1:MOVSB LOOP L1 HLT (3)LEA SI,1000H LEA DI,2000H MOV CX,100 CLD REP MOVSB HLT 6.编写一个程序,把自1000H单元开始的100个数传送至1050H开始的存储区中(注意:数据区有重叠)。 解:LEA SI,1000H LEA DI,1050H ADD SI,63H ADD DI,63H MOV CX,100 STD REP MOVSB HLT 7.自0500H单元开始,存放着100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零时就停止传送。 解:LEA SI,0500H LEA DI,1000H MOV CX,100

微机原理第3章习题与答案

习题 一、选择题 1.寻址方式指出了操作数的位置,一般来说_______。 A.立即寻址给出了操作数的地址 B.寄存器直接寻址的操作数在寄存器内,而指令给出了存储器 C.直接寻址直接给出了操作数本身 D.寄存器直接寻址的操作数包含在寄存器内,由指令指定寄存器的名称 答案:D 2.寄存器寻址方式中,操作数在_________。 A.通用寄存器 B.堆栈 C.内存单元 D.段寄存器 答案:A 3.寄存器间接寻址方式中,操作数在_________。 A.通用寄存器 B.堆栈 C.内存单元 D.段寄存器 答案:C 4.下列指令中的非法指令是______。 A.MOV[SI+BX],AX B.MOVCL,280 C.MOV[0260H],2346H D.MOVBX,[BX] 答案:B 5.设(SP)=0100H,(SS)=2000H,执行PUSHBP指令后,栈顶的物理地址是_____。 A.200FEH B.0102H C.20102H D.00FEH 答案:A 6.指令LEABX,TAB执行后,其结果是______。 A.将TAB中内容送BX B.将TAB的段基址送BX C.将TAB的偏移地址送BX D.将TAB所指单元的存储内容送BX 答案:C 7.下列正确的指令格式有______。 A.MOV[BX],1 B.MOVAL,0345H C.MOVES:PTR[CX],3 D.XLAT 答案:D 8.设(AX)=C544H,在执行指令ADDAH,AL之后,______。 A.CF=0,OF=0 B.CF=0,OF=1 C.CF=1,OF=0D,CF=1,OF=1 答案:C 9.若AL、BL中是压缩BCD数,且在执行ADDAL,BL之后,(AL)=0CH,CF=1,AF=0。再执行DAA后,(AL)=_____。 A.02H B.12H C.62H D.72H 答案:B 10.执行下列程序后AL的内容为_____。 MOVAL,25H SUBAL,71H DAS A.B4H B.43H C.54H D.67H

微机原理实验

实验一 MASM For Windows 的使用及顺序程序设计 一、实验目的 1、熟悉在PC机上建立、汇编、连接、调试和运行8086汇编语言程序的过程。 2、熟悉masm for windows调试环境及DEBUG常用命令的使用 二、实验内容 1.DEBUG常用命令(U、R、D、E、F、T、G、Q)的操作使用 2.编程实现两个16位无符号数的加、减、乘、除运算。 有两个两字节无符号数分别放在存储单元A、B起始的缓冲器中,求其和,结果放在A起始的缓冲区并在屏幕上显示。相加若有进位不存入存储单元。 三、实验设备 PC机一台 四、实验准备 1) 分析题目,将程序中的原始数据和最终结果的存取方法确定好。 2) 画出流程图。 3) 写出源程序。 4) 对程序中的结果进行分析,并准备好上机调试与用汇编程序及汇编调试的过程。 五、实验步骤 1) 输入源程序。 2) 汇编、连接程序,生成 .EXE文件,执行文件,检查结果。 六、学生实验报告的要求 1) 列出源程序,说明程序的基本结构,包括程序中各部分的功能。 2) 说明程序中各部分所用的算法。 3) 说明主要符号和所用到寄存器的功能。 4) 上机调试过程中遇到的问题是如何解决的。

5) 对调试源程序的结果进行分析。 4) 说明标志位CF、SF和OF的意义。 DEBUG的常用命令 1、R 显示或修改寄存器的内容 命令格式:-R 2、 D 显示存储单元的内容 命令格式:-D[地址1, 地址2] 3、E修改存储单元的内容 命令格式:-E[地址1, 地址2] 4、U反汇编 命令格式:-U[地址1, 地址2] 5、T单步执行 命令格式:-T 6、G连续执行 命令格式:-G[=起始地址, 结束地址] A小汇编 命令格式:-A 7、Q退出DEBUG,返回DOS 实验一源程序 EXAM1-2 .ASM DATA SEGMENT A D B 34H,18H,2 DUP(0),’$’ B DB 56H,83H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A MOV BL,B ADD AL,BL MOV AH,A+1 MOV BH, B+1 ADC AH, BH MOV A, AL

四川大学微机原理实验报告..

微机原理实验报告 学院: 专业班级: 姓名 学号

实验一汇编语言编程基础 1.3汇编语言程序上机操作和调试训练 一.功能说明 运用8086汇编语言,编辑多字节非压缩型BCD数除法的简单程序,文件名取为*.ASM。 运用MASM﹒EXE文件进行汇编,修改程序中的各种语法错误,直至正确,形成*.OBJ文件。 运用LINK.EXE文件进行连接,形成*.EXE文件。 仔细阅读和体会DEBUG调试方法,掌握各种命令的使用方法。 运用DEBUG。EXE文件进行调试,使用单步执行命令—T两次,观察寄存器中内容的变化,使用察看存储器数据段命令—D,观察存储器数据段内数值。 再使用连续执行命令—G,执行程序,检查结果是否正确,若不正确可使用DEBUG的设置断点,单步执行等功能发现错误所在并加以改正。 二.程序流程图 设置被除数、商的地址指针 设置单位除法次数计数器 取被除数一位作十进制调整 作字节除法、存商 N 被除数各位已除完? Y 显示运算结果 结束 三.程序代码 修改后的程序代码如下: DATA SEGMENT A D B 9,6,8,7,5 B DB 5 C DB 5 DUP (0) N EQU 5 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX

MOV ES,AX CLD LEA SI,A LEA DI,C MOV CX,N MOV AH,0 LP1: LODSB AAD DIV B STOSB LOOP LP1 MOV CX,N LEA DI,C LP2: MOV DL,[DI] ADD DL,30H MOV AH,2 INT 21H INC DI LOOP LP2 MOV AH,4CH INT 21H CODE ENDS END START 四.实验感想和收获 通过这次试验,我对微机原理上级试验环境有了初步的认识,可以较为熟练地对汇编语言进行编译,汇编及连接,同时也学会了用DEBUG调试程序,收获很大。 在这次试验中我也遇到了一些困难。在刚开始我发现自己无法打开MASM.EXE,计算机提示是由于版本不兼容。我这才想起来我的操作系统是64位的,和该软件版本不兼容。不过我并没有放弃,经过我的摸索之后,我发现用DOSBOX这个程序可以解决我的电脑运行不了该程序的问题。在解决了第一个难题后,我开始着手改正试验1.3中的语法错误和逻辑错误,但是无论我怎么修改却始终都无法通过编译,并且基本上每句话都有编译错误。根据我多年编程的经验来看,这应该是中文输入法在搞鬼,之后我耐心地把程序重新输了一遍,果然通过了编译,并且之后的连接也进行的很顺利。在用DEBUG调试时发现得出的结果也很正确。 尽管这次的实验内容非常简单,仅仅是教会我们一些基本的操作,但我却明显感觉到了汇编语言和C语言等高级语言所不同的地方。越是底层,基础的东西就越不人性化,用C语言一行代码就能实验的功能在汇编语言中可能要花上数十行。看来汇编语言的学习不是几周就能速成的,必须要有长年累月的积淀才能掌握。

微机原理 第十章

第十章 一、填空题 1、8255A-5芯片中包含有个端口;CPU可通过指令对其端口进行访问。 2、8255A-5的端口可分成A组和B组,其中A组包含;B组包含。8255A-5有种工作方式,只有组可工作于所有工作方式。 3、若要使8255A-5的A组和B组均工作于方式0,且使端口A为输入,端口B为输出,端口C为输入,需设置控制字为。 4、在IBM-PC系统中,8255A-5工作于方式;其中,A端口的端口地址是,其功能是,B端口的端口地址是,功能是,C端口的端口地址是,功能是。 5、当8255A的PC4~PC7全部为输出线时,表明8255A的A端口的工作方式是 6、若使8086与8255A连接时8086引脚和与8255A的A0、A1连接。 7、当8255A引脚RESET信号为高电平有效时,8255A内部所有寄存器内容被,同时三个连接数据端口被自动设置为端口。 8、当8255A引脚CS为高电平时,数据总线处于。 9、当8255A引脚CS为低电平时,若RD、WR为时则数据引脚处于高阻状态。 10、8255A工作于方式0,微处理器可以采用和传送方式。 11、8251A引脚DSR是数据装置准备好信号,低电平有效,是方向,表示数据已准备好。 12、8251A引脚RST是请求发送信号。低电平有效,方向是,此信号用于通知微处理器已准备好发送。 13、8251A引脚CTS是清除发送信号。低电平时有效,方向是,当其有效时,表示发送数据。 14、当发送缓冲器中没有再要发送的字符时,TxE信号变成电平,当从微处理器送来一个数据字符时,TxE信号就变成信号。 15、同步工作时,若TxE为高电平有效时,意味着数据发送出现,芯片会同步字符。 16、8251A状态字中TxRDY位,可以用于微处理器方式,判断是否可以。 17、当8251A引脚RxRDY为高电平时,表示中已经有组装好的一个数据字符,可通知将它取走。 18、若8251A选择内同步,就由芯片内电路搜索同步字符,一旦找到,就从端 一个高电平信号。 19、若8251A选择外同步,当片外检测电路找到同步字符以后,可以从引脚 一个高电平信号。 20、8251A初始化时写入字和字。 二、单项选择题 1、关于8255A-5芯片,下列各种描述中,正确的是() A)A组端口可工作于全部三种工作方式,B组端口能工作于除双向总线I/O方式之外的其它两种方式。 B)8255A-5芯片在工作时,必须将A、B两组设置为相同的工作方式。 C)8255A-5有三个端口,每个端口均可工作于三种工作方式。

微机原理实验一 两个多位十进制数相加实验试做报告

实验一两个多位十进制数相加实验试做报告 【实验目的】 1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。 2.熟悉和掌握用DEBUG调试程序的方法。 【实验性质】 验证性实验(学时数:3H)。 【实验内容】 将两个多位十制数相加,要求加数和被加数均以ASCII码形式各自顺序存放在以DATAl 和DATA2为首的5个内存单元中(低位在前),结果送回DATAl处。 【实验说明】 汇编语言没有十进制加法指令,ADD/ADC加法指令的运算对象是二进制数,如果要进行BCD码数的加法,需要对结果进行修正。组合BCD码的加法调整指令为DAA,它针对AL寄存器中的组合BCD码数之和进行修正。对于未组合BCD码的加法调整指令为AAA(加法的ASCII 码调整指令),它将存于AL寄存器中的一位ASCII码数加法运算的结果调整为一位拆开型十进制数,仍保留在AL中,如果向高位有进位(AF=1),则进到AH中。 对于多字节的ASCII码相加,只能从最低位开始逐个字节地进行加法操作,并随即进行调整。 参考程序清单(WJSY0.ASM): DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H DATA2 DB 36H,35H,30H,38H,32H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,5 ;计数 MOV SI,0 ;做指针用,因从DATA1的第一个数取数,故SI=0 CLC NEXT: MOV AL,DATA1[SI] ;取被加数给AL ADC AL,DATA2[SI] ;取加数和AL相加 AAA ;未组合十进制数加法调整指令 MOV DATA1[SI],AL ;结果回送至DATA1处 INC SI ;修改SI指向下一位数 LOOP NEXT MOV SI,5 ;因显示是从高位到低位,故SI=5 L: ADD DATA1[SI-1],30H ;还原成ASCII码 MOV DL,DATA1[SI-1] MOV AH,02 ;送显示 INT 21H DEC SI

微机原理实验报告

微 机 原 理 实 验 报 告 班级: 指导老师:学号: 姓名:

实验一两个多位十进制数相加的实验 一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图 图3-1

四、参考程序清单 DATA SEGMENT DATA1 DB 33H,39H,31H,37H,34H;被加数 DATA1END EQU $-1 DATA2 DB 34H,35H,30H,38H,32H;加数 DATA2END EQU $-1 SUM DB 5 DUP(?) DATA ENDS STACK SEGMENT STA DB 20 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 21H ADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05H AD1: SUB BYTE PTR [SI],30H SUB BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,[SI] MOV BL,[DI] ADC AL,BL

微机原理第四章答案

“微处理器系统原理与嵌入式系统设计”第四章习题解答 4.3 微机系统中总线层次化结构是怎样的? 片内总线、片间总线、系统内总线、系统外总线.。 4.4 评价一种总线的性能有那几个方面? 总线时钟频率、总线宽度、总线速率、总线带宽、总线的同步方式和总线的驱动能力等。 4.5 微机系统什么情况下需要总线仲裁?总线仲裁有哪几种?各有什么特点? 总线仲裁又称总线判决,其目的是合理的控制和管理系统中多个主设备的总线请求,以避免总线冲突。当多个主设备同时提出总线请求时,仲裁机构按照一定的优先算法来确定由谁获得对总线的使用权。 集中式(主从式)控制和分布式(对等式)控制。集中式特点:采用专门的总线控制器或仲裁器分配总线时间,总线协议简单有效,总体系统性能较低。分布式特点:总线控制逻辑分散在连接与总线的各个模块或设备中,协议复杂成本高,系统性能较高。 4.6总线传输方式有哪几种?同步总线传输对收发模块有什么要求?什么情况下应该采用异步传输方式,为什么? 总线传输方式按照不同角度可分为同步和异步传输,串行和并行传输,单步和突发方式。同步总线传输时,总线上收模块与发模块严格按系统时钟来统一定时收发模块之间的传输操作。异步总线常用于各模块间数据传送时间差异较大的系统,因为这时很难同步,采用异步方式没有固定的时钟周期,其时间可根据需要可长可短。 4.12 串行传输的特点是什么? 1)传输方式可分为单工方式、半双工方式、全双工方式。 2)对传输速率有严格要求。 3)采用单条传输线来传输数据,减小了传输成本,增加了收发双方的复杂性。 4)传输过程中,由于引起误码,需差错控制。 4.14发送时钟和接收时钟与波特率有什么关系? 其关系如下: 1、同步通信是用时钟信号加载传输信号的,因些收发时钟频率=收发波特率; 2、异步通信情况下的话,接收时钟频率=n*(接收波特率) (其中n=1,16,64);发送时钟频率可以等于波特率,也可以为n*(发送波特率),但考虑到时钟与接收时钟一致,故发送时钟频率=n*(发波特率) (其中n=1,16,64) 。 4.15 异步串行通信中的起始位置和停止位置有什么作用?

微机原理 实验报告

微机原理与接口技术 实验指导书 班级 学号099074 姓名 安徽工业大学计算机学院

实验一存贮器读写实验 一、实验内容 对指定地址区间的RAM(4000H~4FFH)先进行写数据55AAH,然后将其内容读出再写到5000H~5FFH中。 二、实验步骤 l、将实验系统与PC机连接; 2、在PC机上启功DJ-8086k软件,实验系统进入联机状态; 3、在DJ-8086k软件环境下编辑、调试程序,将程序调试、编译通过; 4、运行程序。 5、稍后按RST键退出,用存贮器读方法检查4000H~43FFH中的内容和5000~53FFH中的内容应都是55AA。 三、实验程序清单 CODE SEGMENT ; ASSUME CS:CODE PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 1850h START: JMP START0 BUF DB ,,,,, data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1 h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: MOV AX,0H MOV DS,AX MOV BX,4000H MOV AX,55AAH MOV CX,0200H RAMW1: MOV DS:[BX],AX ADD BX,0002H LOOP RAMW1 MOV AX,4000H MOV SI,AX MOV AX,5000H MOV DI,AX

相关文档
相关文档 最新文档