寻址方式与基本指令-微机原理实验报告

合集下载

微机原理及应用实验报告

微机原理及应用实验报告
2•深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3•掌握各种寻址方法以及简单指令的执行过程。
二、实验要求
1实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分 析等。
2•本实验要求在PC机上进行。
3•本实验只要求在DEBUC调试状态下进行,包括汇编程序,调试程序,执行程序。
4•熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。
二、实验要求
1•实验前准备
1分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。
2写出算法或画出流程图。
3写出源程序。
4对程序中的结果进行分析,并准备好上机调试的过程。
2•本实验要求在PC机上进行。
3•汇编过程中出现问题,可用DEBU(进行调试。
xorax,ax pushax movax,data movds,ax leasi,data1 leadi,data2 leabx,data3 moval,[si+3] movah,[di+3] an dal,0fh an dah,0fh addal,ah oral,30h mov[bx+3],al moval,[si+2] movah,[di+2] an dal,0fh an dah,0fh adcal,ah oral,30h mov[bx+2],al moval,[si+1] movah,[di+1] an dal,0fh an dah,0fh adcal,ah oral,30h mov[bx+1],al moval,[si] movah,[di] an dal,0fh an dah,0fh adcal,ah
;exercize21

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告学号:********班级:*****姓名:*****指导教师:*****一.实验目的1.通过上机实验进一步熟悉并掌握汇编语言的指令系统和寻址方式;2.熟悉汇编语言程序上机的流程,以及与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)3.学习汇编程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法4.能够独自编写,调试,并成功运行一个完整的程序。

二.实验内容与步骤1.掌握汇编语言程序上机过程首先,新建文本文档后将扩展名改为.ASM,这是汇编语言源程序的文件格式,以记事本形式打开后在其中键入所编写的程序。

第一次题目是在屏幕上显示一串字符串,在老师的指导下,编写的程序如下:data segmentnote db 'hello','$'data endscode segmentmain proc farassume cs:code,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axmov ah,09hlea dx,noteint 21hmain endpcode endsend start之后,要进行编译和运行。

源程序经过翻译程序成为机器能够识别的目标程序,目标程序再经过连接程序连接后转换成在机器上可执行的程序。

基本流程图如下:在编译的过程中,程序查出的主要是语法上的错误,如果有错,则不能通过汇编,要纠错后重新汇编直到无错为止。

最后,生成的.EXE文件即为可执行文件,从磁盘调入内存运行,得到运行结果。

上述程序的运行结果为在屏幕上显示出“hello”。

2.编程完成任意两个两位数的加法运算编程任务的基本要求为:从键盘输入任意两个两位数相加,将结果显示在屏幕上。

刚开始拿到题目后,头脑里是比较混乱的。

经过与同学的探讨之后,我们大概确定出要完成整个功能,需经过以下过程:将输入的ASCII码与十进制数值进行转换,并保存在寄存器中;通过调用程序将两个数相加,并将结果保存;将结果显示在屏幕上。

微机原理实验一报告

微机原理实验一报告

微机原理实验一1.DEBUG 的基本操作:(1)从WINDOWS 进入DOS 之后,输入命令启动DEBUG:C:>DEBUG 回车(2)输入R 命令,查看和记录CPU 各个寄存器的内容:-R 回车看到什么?AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 0000 ADD [BX+SI],AL DS:0000=CD(3)输入 A 命令,汇编下面的字符“WINDOWS”显示程序(DEBUG 调试环境中,默认为十六进制,因此源程序中十六进制数后面不写H):-A 100 ;从偏移地址是0100H 处开始写指令MOV AH,2MOV DL, 57 ;57H 是“W”的ASCII 码INT 21 ;INT 21 是DOS 功能调用,AH=2 代表2 号功;能。

这3 句合起来的功能是:显示DL 中的字符MOV DL, 49INT 21MOV DL, 4EINT 21MOV DL, 44INT 21MOV DL, 4FINT 21MOV DL, 57INT 21MOV DL, 53INT 21INT 3 ;功能是产生一个断点,不要省略(4)输入U 命令反汇编上面的程序:-U 100问:这里100代表什么?反汇编从0100开始(5)输入G命令连续运行上面的程序,记录运行结果:-G=100AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0100 NV UP EI PL NZ NA PO NC 16D3:0100 B402 MOV AH,02(6)输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,45,4C,43,4F,4D,45:-E 103 回车(以下同)-E 107-E 10B-E 10F-E 113-E 117-E 11B(7)输入D命令查看程序机器码的存放情况:-D 100 11E ;看从100开始到11E的机器码(8)输入G命令再连续运行程序,并记录运行结果:-G=100WELCOMEAX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=011E NV UP EI PL NZ NA PO NC 16D3:011E CC INT 3(9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各命令的运行结果:-T=100 回车-G=100 106 回车-G=100 10A 回车-G=100 10E 回车-G=100 11E 回车T=100AX=0245 BX=0000 CX=0000 DX=0045 SP=FFEE BP=0000 SI=0000 DI=0000DS=16D3 ES=16D3 SS=16D3 CS=16D3 IP=0102 NV UP EI PL NZ NA PO NC 16D3:0102 B257 MOV DL,57-g=100 106W-g=100 10aWE-g=100 10eWEL-g=100 11eWELCOME2.一字节十六进制数转换为ASCII码(只考虑大写字母)用E命令在DS:1000单元中存放十六进制数5A,用A命令从CS:0100单元开始存放下面程序的机器码,并调试运行(DEBUG调试环境中,源程序中十六进制数后面不写H):CS:0100 8D360010 LEA SI,[1000] ;将EA=1000送入SI中0104 8D3E2010 LEA DI,[1020] ;将EA=1020送入DI中0108 8A04 MOV AL,[SI] ;(AL)←((SI))010A 240F MOV BL,AL ;将AL中的一个字送入BL010C 240F AND AL,0F ;(AL)←(AL)^(01H)010E E80E00 CALL 011F ;调用EA=011F中的指令0111 80E30 AND BL,F0 ;(BL)←(BL)^(F0H)0114 B90400 MOV CX,4 ;将立即数4送入CX中0117 D2EB SHR BL,CL ;将BL中的内容左移CL;中指出的位数,且每次移位最低位补0 0119 88D8 MOV AL,BL ;将BL中的一个字送入AL011B E80100 CALL 011F ;调用EA=011F中的指令011E F4 RET :返回指令011F 3C09 CMP AL,09 ;(AL)-09,根据结果设置标志位0121 7602 JBE 0125 ;执行EA=0125的指令0123 0407 ADD AL,07 ;(AL)←(AL)+07H0125 0430 ADD AL,30 ;(AL)←(AL)+30H0127 8805 MOV [DI],AL ;(AL)送入EA=(DI)的单元中0129 47 INC DI ;(DI)←(DI)+1012A C3 RET ;返回指令运行结果:1)写出执行上述程序的命令行-G=1002)程序执行后,[1020]=_____41_____,[1021]=___35______。

微机原理的实验报告

微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。

二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。

(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。

(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。

2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。

(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。

(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。

3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。

(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。

(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。

4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。

(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。

(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。

三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。

2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。

3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。

4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。

四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。

微机原理实验报告

微机原理实验报告

微机原理实验报告1.实验的目的是学习8086/8088指令系统中一些基本指令的用法以及程序的基本方法。

2.熟悉在PC上建立,组装,连接,调试和运行8086.8088汇编语言程序的全过程。

2,在实验中,四个数字a,B,C和D分别以单字节压缩BCD代码的形式存储在num存储器的四个单元中。

然后,计算(a + b)-(c + D)并以Y1单位放置,结果显示在屏幕上。

在调试中,不断更改a,B,C,D的内容并查看结果。

本文提供了几组数据:1. A = 09,B = 06,C = 04,d = 07 2. A = 38,B = 41,C = 29,d = 343. A = 70,B = 23,C = 42,d = 414. A = 63,B = 73,C = 62,d = 50 3.实验调试的过程1.使用DOS工具掩码和链接生成EXE文件2.使用调试工具编译断点调试程序。

1.用-U命令反汇编程序②设置断点1以检查a + B的结果是否正确。

结果存储在A1中23h,结果正确。

③设置断点2以检查C + D的结果是否正确。

如果将结果存储在Al中30h,则结果正确。

④运行程序后,使用-D命令检查最终结果是否正确。

数据段的第五个地址是计算结果,该结果正确。

⑤使用-E特别是在(a + b)-(c + D)中,如果前者小于后者,则结果可能不正确。

这时,我们应该判断借位标志是否为负。

如果为负,请使用(c + D)-(a + b)并在结果中输出一个负号。

3.成功调试并检查结果直接在DOS命令add.exe 下运行或在调试中使用-G命令运行程序,并查看程序结果。

4.实验程序和DSEG程序框图。

定义数据段num DB 13h,27h,11h,12h;定义A,B,C,D Y1 DB?DSEG结束;数据段结束sseg段标准堆栈;定义堆栈DB 20 dup(?)sseg结束cseg段假定CS:cseg,ds:DSEG,SS:SSEG开始:MOV AX,DSEG MOV DS,AX MOV AX,SSEG MOV SS,AX MOV AL,[NUM];复制A至AL添加AL,[NUM + 1]; A + B DAA MOV CL,AL;保存AL MOV AL,[NUM + 2];复制C至AL 添加AL,[NUM + 3]; C + D DAA SUB CL,AL;(A + B)-(C + D)MOV AL,CL DAS MOV [NUM + 4],AL MOV BL,AL;保存AL和AL,0F0H; R SHIFT MOV CL,4 SHR AL,CL ADD AL,30H;获取ASCII MOV DL,AL MOV AH,02h int 21h mov Al,BL;恢复Al和Al,0Fh;取低4位,添加Al,30h mov DL,Al mov ah,02h int 21h mov ax,4c00h int 21h cseg结束起始端5。

微机原理综合实训报告

微机原理综合实训报告

通过本次微机原理综合实训,使学生掌握微型计算机的基本组成、工作原理以及常用接口技术,培养学生动手实践能力、分析问题和解决问题的能力。

具体目标如下:1. 熟悉微型计算机的硬件组成,了解各部件的功能和相互关系。

2. 掌握微机原理与接口技术的基本知识,如总线、中断、DMA等。

3. 学会使用常用接口芯片,如8255、8259、8253等。

4. 能够进行简单的微机原理设计与实现。

二、实训内容1. 微型计算机硬件组成实验(1)了解微型计算机的基本组成,包括中央处理器(CPU)、存储器、输入输出设备、总线等。

(2)学习CPU的内部结构,了解指令系统、寻址方式等。

(3)了解存储器的分类、容量、速度等参数,学习存储器扩展技术。

(4)学习输入输出设备的工作原理,掌握常用接口芯片的使用方法。

2. 微机原理与接口技术实验(1)学习总线、中断、DMA等基本概念,了解其工作原理。

(2)学习8255并行接口芯片的应用,实现LED显示、按键输入等功能。

(3)学习8259中断控制器芯片的应用,实现中断处理。

(4)学习8253定时/计数器芯片的应用,实现定时功能。

3. 系统设计与实现(1)根据实训要求,设计一个简单的微机系统。

(2)确定系统硬件组成,选择合适的接口芯片。

(3)编写系统软件,实现系统功能。

(4)进行系统调试,确保系统稳定运行。

1. 实验准备(1)了解实验目的、内容和方法。

(2)查阅相关资料,掌握实验所需知识和技能。

(3)准备实验仪器和设备,如示波器、逻辑分析仪等。

2. 实验操作(1)按照实验步骤进行操作,观察实验现象。

(2)记录实验数据,分析实验结果。

(3)针对实验过程中遇到的问题,查阅资料、请教老师,解决问题。

3. 系统设计与实现(1)根据实训要求,确定系统设计方案。

(2)进行硬件选型,设计电路图。

(3)编写系统软件,实现系统功能。

(4)进行系统调试,确保系统稳定运行。

四、实训成果1. 完成微型计算机硬件组成实验,掌握微型计算机的基本组成和工作原理。

微机原理实验报告 可编程并行IO接口8255

微机原理实验报告 可编程并行IO接口8255

《微机原理及应用技术》课程实验报告实验五可编程并行I/O接口8255【预习内容】1.怎样选中可编程I/O接口?怎样实现I/O端口的寻址?8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。

通过地址/数据总线,按照指定地址进行读写操作直接选中8255。

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片。

CPU与外设交换的数据是以字节为单位进行的。

因此一个外设的数据端口含有8位。

而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许共用一个端口,命令口也可共用。

数据信息、状态信息和控制信息的含义各不相同,按理这些信息应分别传送。

但在微型计算机系统中,CPU通过接口和外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送,且将状态信息作为输入数据,控制信息作为输出数据,于是三种信息都可以通过数据总线传送了。

但要注意,这三种信息被送入三种不同端口的寄存器,因而能实施不同的功能。

CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,也需要由译码电路来形成I/O端口地址。

I/O端口的编址方式有两种·存储器映象寻址方式·I/O指令寻址方式2.8255A接口芯片内含几个I/O端口?它们的名称分别是?这些I/O口地址有何特点?三个数据端口,三种工作方式A口可工作于方式0、方式1和方式2中的任一种B口可工作于方式0和方式1,但不能工作于方式2C口只能工作于方式08位数据端口:A口、B口、C口A口:PA7~PA0B口:PB7~PB0C口:PC7~PC0连接外部设备A口与B口为一个8位的输入口或输出口C口单独作为一个8位的输入口或输出口配合A口和B口使用,作为控制信号和状态信号3.8255A有几个控制字?怎样设置?它有两个控制字,一个是方式选择控制字,一个是对C口进行置位或复位控制字。

微机原理实验报告

微机原理实验报告

实验名称:微机原理与接口技术实验实验日期:2023年11月X日实验地点:微机原理实验室实验仪器:微机原理实验箱、计算机、仿真软件等实验人员:XXX、XXX、XXX一、实验目的1. 理解微机原理的基本概念和组成结构。

2. 掌握计算机的基本工作原理和指令系统。

3. 学习计算机接口技术的基本原理和方法。

4. 通过实验,提高动手能力和实际操作技能。

二、实验内容1. 计算机组成结构实验:- 学习计算机的硬件组成,包括中央处理器、存储器、输入输出设备等。

- 了解计算机的工作原理,包括数据的输入、处理、输出过程。

- 使用实验箱进行计算机组成结构实验,验证计算机的基本工作原理。

2. 指令系统实验:- 学习汇编语言的基本语法和指令系统。

- 掌握指令的格式、操作数和寻址方式。

- 使用汇编语言编写程序,实现简单的计算、数据传输和逻辑运算等功能。

3. 接口技术实验:- 学习计算机接口的基本原理和方法。

- 了解常用的接口电路和芯片。

- 使用接口技术实现数据传输、信号处理等功能。

- 学习仿真软件的使用方法,包括程序编写、调试和运行等。

- 使用仿真软件模拟计算机的工作过程,验证程序的正确性。

三、实验步骤1. 计算机组成结构实验:- 搭建实验箱,连接计算机硬件设备。

- 编写程序,实现简单的计算、数据传输和逻辑运算等功能。

- 观察实验结果,验证计算机的基本工作原理。

2. 指令系统实验:- 学习汇编语言的基本语法和指令系统。

- 编写汇编语言程序,实现简单的计算、数据传输和逻辑运算等功能。

- 使用汇编语言编写程序,实现更复杂的计算和数据处理功能。

3. 接口技术实验:- 学习计算机接口的基本原理和方法。

- 使用接口技术实现数据传输、信号处理等功能。

- 编写程序,实现接口功能,并验证其正确性。

4. 仿真软件实验:- 使用仿真软件编写程序,实现计算机的基本工作过程。

- 使用仿真软件调试程序,验证程序的正确性。

- 使用仿真软件模拟接口电路的工作过程,验证接口功能的正确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安郵電大學
微型计算机原理
课内实验报告书
院系名称:计算机学院
实验题目:寻址方式与基本指令学生姓名:
专业名称:软件工程
班级:软件1003班
学号:
指导教师:葛茂
1 实验目的
1、熟悉80x86寻址方式及基本指令的功能,进一步理解和巩固课堂学习内容。

2、掌握汇编语言程序设计上机过程, 掌握汇编语言源程序结构,为后续汇编语言程序设计打好基础。

3、熟悉Microsoft的DEBUG或Borland的Turbo DEBUG调试工具的使用方法
2 实验预习要求
1、认真阅读本书第一部分第1章,熟悉汇编语言程序设计上机步骤。

2、认真阅读本书第三部分,熟悉DEBUG调试工具的使用方法。

3、复习80x86操作数寻址方式及基本指令(数据传送、算术运算和逻辑运算等)。

4、了解实验内容,并在实验前根据课堂所学知识回答有关问题(个别取决于程序实际运行环境的问题除外),以便在实验时进行验证。

3 实验内容
1、读懂下列源程序,使用EDIT生成名为EX11.ASM的源程序,汇编生成EX11.OBJ
文件和EX11.LST文件,连接生成EX11.EXE文件;用EDIT打开EX11.LST文件,了解.LST文件包含的信息;使用DEBUG调试工具单步执行EX11.EXE程序,注意观察IP值的变化,并回答下列问题。

(1)程序装入后,代码段寄存器CS的内容为0893H,代码段第一条可执行指令MOV AX, DATA对应的机器代码为B80E08H,它是一个3字节指令,
注意观察执行该指令时IP值的变化情况,该指令源操作数DATA的寻址
方式是立即数寻址,其值为1425。

(2)执行完MOV DS, DATA指令后,数据段寄存器DS的内容为8629H,源程序在数据段中定义的数据82H、68H和88H被装入的存储单元的物理地
址分别为86290H、86291H和86292H。

(3)程序中第一条ADD AL, [BX] 指令对应的机器代码为0207H,它是一个2字节指令,注意观察执行该指令时IP值的变化情况;该指令中源
操作数的寻址方式为寄存器间接寻址,该操作数所在存储单元的逻辑地
址(DS): (BX)为8629:0001,其物理地址为86291H;执行完该指令后
(AL)=EAH,CF=0,OF=0,ZF=0,SF=1,AF=0,PF=0;若两操作数为无符
号数,计算结果是否正确是?若两操作数为带符号数,计算结果是否正
确错误?
(4)执行完第二条“ADD AL, [BX]”指令后(AL)=72H,CF=1,OF=1,ZF=0,SF=0,AF=1,PF=1;若两操作数为无符号数,计算结果是否正确
错误?若两操作数为带符号数,计算结果是否正确错误?
(5)指令MOV SUM, AL中目的操作数的寻址方式为寄存器寻址。

该指令执行完后,注意观察(DS):0003H单元中值的变化,该单元的值变为72H。

DATA SEGMENT
NUM DB 82H, 68H, 88H
SUM DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV BX, OFFSET NUM
MOV AL, [BX]
INC BX
ADD AL, [BX]
INC BX
ADD AL, [BX]
MOV SUM, AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
2、读懂下列源程序;编辑、汇编、连接生成EX12.ASM、EX12.OBJ、EX12.LST、
EX12.EXE文件;使用DEBUG单步执行EX12.EXE文件,并回答以下问题。

(1)代码段的前三条指令MOV AX, STACK、MOV SS, AX和MOV SP, LENGTH STL的功能为堆栈初始化,试问执行完这三条指令后,堆栈栈底所在单元
的逻辑地址(SS): (SP)为8629:0100;执行PUSH AX指令后堆栈指针寄
存器(SP)=00FEH,此时,(SS): (SP+1)和(SS): (SP)单元的值为5B0A:
CEDC和083A:CFDE H;执行完PUSH BX后(SP)=CFD8H,此时,(SS): (SP+1)
和(SS): (SP)单元的值为083A:CED8和C83A:CFDAH;执行完POP BX
后(SP)=CFCCH;此时(AX)=0000H,(BX)=CD44H。

请读者通过对堆栈操作指
令执行情况的观察,进一步掌握进、出栈操作过程。

(2)执行ADD AX, BX指令后(AX)=0000H,CF=NC,OF=OU,ZF=NE,SF=NG,AF=NA,PF=PO(注意考虑PF值与计算结果高8位有无关系);若两操作数
为无符号数,计算结果是否正确正确?若两操作数为带符号数,计算结果
是否正确正确?
(3)执行AND AX, BX指令后(AX)=4802H,CF=0,OF=0,ZF=0,SF=0,AF=0,PF=0。

STACK SEGMENT stack
STL DW 100H DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK
START: MOV AX, STACK
MOV SS, AX
MOV SP, LENGTH STL
;表达式“LENGTH STL”的功能为计算STL中定义的变量的个数,
;汇编后其值为100H ,详见教材5.2.2
MOV AX, 0101101100001010B
MOV BX, 0100110010100011B
PUSH AX
PUSH BX
ADD AX, BX
POP AX
POP BX
AND AX, BX
MOV AH,4CH
INT 21H
CODE ENDS
END START
3、指出下列指令的错误原因,上机运行,观察汇编程序(MASM.EXE)给出的出错
信息,改正后再上机验证。

(1) MOV BP, BL 正确
(2) MOV [BX],[BP] 错误,两个操作数不能同时为寄存器操作数
(3) MOV [BX],20H 错误,目的操作数类型不明确
(4) INC [SI] 错误,目的操作数类型不明确
(5) ADD AX,[SI+DI] 错误,存储器寻址中有效地址不能由两个变
址寄存器组成
(6) SHL AX,3 错误,移位次数大于1时应用CL寄存器
(7) PUSH 2000H 错误,堆栈指令的操作数不能是立即数
(8) POP AL 错误,堆栈指令的操作数只能是字操作数
(9) MOV CS,AX 错误,操作数类型不一致
(10) MOV DS,1000H 错误,源操作数是立即数时,目的操作数不
能是段寄存器
4 实验收获
这科和以前学的感觉完全不同,汇编语言让人很难懂,不过通过自己编写,已经有些懂了。

相关文档
最新文档