文档库 最新最全的文档下载
当前位置:文档库 › 《汇编语言》实验报告

《汇编语言》实验报告

《汇编语言》实验报告
《汇编语言》实验报告

院系:计算机科学学院

专业:计算机科学与技术

年级: 2014级

课程名称:汇编语言

学号: 201421091069 姓名: Qu 指导教师:李娜

2015年 11 月 24 日

计算机组成原理实验1-汇编语言实验

微处理器与接口技术 实验指导

实验一监控程序与汇编语言程序设计实验 一、实验要求 1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。 2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。 3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 二、实验目的 【1】学习和了解TEC-XP16教学实验系统监控命令的用法; 【2】学习和了解TEC-XP16教学实验系统的指令系统;

【3】学习简单的TEC-XP16教学实验系统汇编程序设计。 三、实验注意事项 (一)实验箱检查 【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。 【2】五位控制开关的功能示意图如下: 【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】 (二)软件操作注意事项 【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口; 【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试; 【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试; 【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。

《汇编语言》在线作业二

请同学及时保存作业,如您在20分钟内不作操作,系统将自动退出。 《汇编语言》在线作业二 一、单选题(共 20 道试题,共 100 分。) V 1. 在多重循环程序中,每次通过外层循环进入内层循环时,其内层循环的初始条件(B )。 A. 不必考虑 B. 必须重新设置 C. 必须置1 D. 须清0 满分:5 分 2. 伪指令是(C)规定的汇编说明符,它在源程序汇编时进行说明。 A. DEBUG B. LINK C. MASM D. EDIT 满分:5 分 3. 下列描述正确的是(D)。 A. 在多重循环程序中,内层循环只能有一个 B. 在汇编语言程序设计中,二重循环程序之间的关系可以交错 C. 在汇编语言程序设计中,每次循环应返回到置初值部分之前 D. 在汇编语言程序设计中,每次循环应返回到置初值部分之后 满分:5 分 4. 下列指令会影响标志位的指令是(D)。 A. JMP L

B. JC L C. MOV AL,L D. SHL AL,1 满分:5 分 5. LINK命令执行后可以生成一个以(B)为扩展名的文件。 A. ASM B. EXE C. OBJ D. COM 满分:5 分 6. 如果0100H单元存放条件转移指令的操作码,0101H单元存放条件转移指令的相对位移量 13H,那么转移后的指令的偏移地址为(C)。 A. 0102H B. 0113H C. 0115H D. 00FEH 满分:5 分 7. 若DS=1000H,BX=2000H,(12000H)=56H,(12001H)=78H,AX=1000H,执行“ADD AX,[BX]”指令后,AX=(A)。 A. 8856H B. 6678H C. 8800H D. 6600H 满分:5 分 8. 下列叙述正确的是(A )。 A. 执行一条段间调用指令,先将CS、IP的内容压栈,然后将目的地址送CS和IP。 B. 执行一条段间调用指令,先将目的地址送CS和IP,然后将CS、IP的内容压栈。

汇编语言实验讲义实验2

实验二 算术运算类操作实验 (基础与设计) 一、实验要求和目的 1、了解汇编语言中的二进制、十六进制、十进制、BCD码的表示形式; 2、掌握各类运算类指令对各状态标志位的影响及测试方法; 3、熟悉汇编语言二进制多字节加减法基本指令的使用方法; 4、熟悉无符号数和有符号数乘法和除法指令的使用; 5、掌握符号位扩展指令的使用。 6、掌握BCD码调整指令的使用方法 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 本实验主要进行算术运算程序设计和调试,涉及到的知识点包括: 1.加减法处理指令 主要有加法指令ADD,带进位加法ADC,减法指令SUB,带进位减法指令SBB。 2.乘除法指令和符号位扩展指令 主要有无符号数乘法指令MUL,带符号数乘法指令IMUL,无符号数除法指令DIV,带符号数除法指令IDIV,以及符号位从字节扩展到字的指令CBW和从字扩展到双字的指令CWD。 3.BCD码的调整指令 主要有非压缩的BCD码加法调整指令DAA,压缩的BCD码减法调整指令DAS,非压缩的BCD码加法调整指令AAA,非压缩的BCD码减法调整指令AAS,乘法的非压缩BCD 码调整指令AAM,除法的非压缩BCD码调整指令AAD。 8088/8086指令系统提供了实现加、减、乘、除运算的上述基本指令,可对表1所示的数据类型进行数据运算。 二进制 BCD码 数制 带符号无符号组合非组合运算符+、-、×、÷+、-+、-、×、÷ 操作数字节、字、多精度字节(二位数字)字节(一位数字) 表1 数据类型数据运算表 各指令的格式、功能及其对标志位的影响等细节知识,请同学们查阅相关书籍,这里不再赘述。

《汇编语言》(王爽)第8章 数据处理的两个基本问题--笔记

正确表示:mov ax,[bp] (1)错误表示:mov ax,[ds], mov ax,[cx] (2)在内存单元表示的[...]这种形式下,中括号里面只能放bx,si,di,bp 这四个寄存器。 1.bx,si a.bx,di b.bp,si c. bp,di d.正确组合:(1)mov ax,[bx+bp]a.mov ax,[si+di] b.错误表示: (2)在“[...]”里面的寄存器只能是固定的四种组合,其他组合是错误的 2.如果在[...]中包含了bp 这个寄存器,那么默认的段寄存器就是ss 3.8.1 bx 、si 、di 和bp 从机器指令的层面来讲,并不关心数据的数值是多少,而关心在执行指令之前,它将要处理的数据存在在什么位置 1.CPU 内部 (1)内存 (2)端口 (3)处理的指令可以存放的位置有三个: 2.8.2 机器指令处理的数据在什么地方 立即数。直接在指令中给出,执行指令前一刻,和代码一起存储在CPU 的指令缓存器中(1)eg.mov ax,1 寄存器 eg.mov ax,bx (2)段地址(SA )和偏移地址(EA ) eg. mov ax,ds:[3] (3)汇编语言中数据存储的位置有三种声明方式: 1.8.3 汇编语言中数据位置的表达 8.4 寻址方式 在之前的笔记已经整理了——>所有的寻址方式 8.5 指令要处理的数据有多长 mov al,bl (1)mov ax,bx (2)通过寄存器名 1.mov word ptr ds:[0],1(1)inc byte [bx] (2)通过“X ptr [...]”的格式,其中X 为word 或byte 2.pop ax (1)push bx (2)默认或者已经规定(栈操作都是以字为单位) 3.汇编语言中通过三种方式声明所处理的是字还是字节 8.6 寻址方式的综合应用 暂时跳过 div reg(寄存器) (1)div 内存单元 (2)格式: 1.运算规则与涉及到的寄存器 2.例:计算10001/100 3.由于10001>65535,所以被除数需要用DX 和AX 联合存放。即使100<255,除数也必须取16位的,也就是把8.7 div 指令 第8章数据处理的两个基本问题 2019年11月10日17:54

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验) 1.实验目的 (1) 掌握输入输出程序设计的概念和方法。 (2) 了解PC机外围芯片8259的功能。 (3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。 2.实验说明 本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示, 因此本实验既属于输入输出实验,也属于中断实验。 3.实验内容 编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。 4.实验准备 (1) 预习输入输出程序设计的特点和方法。 (2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。 5.实验步骤 (1) 建立源文件,并通过汇编和连接,产生可执行文件。 (2) 运行程序,观察常规字符键及功能键按下时程序的反应, DATAS SEGMENT buf db'li hongbin','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far START: mov al,68h mov ah,35h int 21h push es push bx push ds mov bx,offset buf mov dx,offset new09 mov ax,seg new09 mov ds,ax MOV AX,DATAS MOV DS,AX pop ds pop bx pop es sti mov al,68h mov ah,25h int 21h main endp

汇编语言实验2

计算机工程系实验报告 课程名称:汇编语言 实验项目名称:用机器指令和汇编语言指令编程 班级:15级计科4班姓名:梁红梅学号:15091413 一、实验目的: 1.学习Debug中D命令的使用方法,掌握查看指定内存单元的内容的指令,其中本实验中 主要掌握“d段地址:偏移地址”的格式; 2.了解Debug 中D命令程序的执行者:CPU,了解D命令的执行过程; 3.掌握CPU在访问内存单元时的主要过程; 4.学习怎样利用在Debug中cs、ds、ss、es这4个段寄存器,简化debug命令格式。 二、实验要求: 使用Debug,将下面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。Mov ax,ffff Mov ds,ax Mov ax,2200 Mov ss,ax Mov sp,0100 Mov ax,[0] ;ax= Add ax,[2] ;ax= Mov bx,[4] ;bx= Add bx,[6] ;bx= Push ax ;sp= 修改的内存单元的地址是内容为 Push bx ;sp= 修改的内存单元的地址是内容为 Pop ax ;sp= ;ax= Pop bx ;sp= ;ax= Push [4] ;sp= 修改的内存单元的地址是内容为 Push [6] ;sp= 修改的内存单元的地址是内容为

三、实验数据记录: 1.进入Debug后使用-a命令将程序写入内存 2.通过使用-t命令将写入内存的程序逐一执行,直到命令执行完毕

三、实验结果及分析: 1.mov ax,[0] 执行完成后 ax=C0EA; 2.add ax,[2]执行完成后ax=C0FC; 3.mov bx,[4] 执行完成后 bx=30F0; 4.add bx,[6]执行完成后 bx=6021; 5.push ax 执行完成后 sp= 00FE 修改的内存单元的地址是 2200:00FE 内容为C0FC 6.push bx 执行完成后 sp= 00FC 修改的内存单元的地址是 2200:00FC 内容为6021

《汇编语言程序设计》在线测试

《汇编语言程序设计》第01章在线测试 《汇编语言程序设计》第01章在线测试剩余时间:59:54 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、一个字节的二进制位数是____位。 A、4 B、8 C、16 D、32 2、微机中每个存储单元具有一个地址,其中存放一个____量。 A、比特(1位) B、字节(8位) C、字(16位) D、双字(32位) 3、设段地址为5788H,偏移地址为94H,该字节的物理地址_____。 A、57974H B、5883H C、58ECH D、57914H 4、汇编语言源程序中,每个语句由4项组成,不影响语句功能的是_____。 A、名字项 B、助记符(操作码) C、操作数 D、注释 5、执行INT 21H指令后,8086CPU将转入_____号中断服务程序。 A、20 B、20H C、21 D、21H 第二题、多项选择题(每题2分,5道题共10分) 1、如下________名称属于8086的16位通用寄存器。 A、IP B、DS C、BP D、DX E、AX 2、采用汇编语言进行程序开发,可以使用的工具软件有______。 A、文本编辑程序 B、汇编程序 C、调试程序 D、集成化开发环境 E、连接程序 3、使用MASM 6.x版本的“ML /Fl eg101.asm”命令,如果源程序eg101.asm没有语法错误,则将生成_________文件。 A、目标代码文件

汇编语言实验讲义

《汇编语言程序设计》实验指导书 计算机系宋勤 《汇编语言》实验学时分配表 实验一汇编语言程序上机过程以及调试 一、预习内容 . 工具软件、的使用 . 常用命令的使用: . 完整程序设计方法的格式。 二、目的要求 . 掌握常用工具软件、的使用 . 掌握常用命令: 能灵活使用这些命令调试程序 . 掌握完整程序设计方法的格式,能正确书写数据段,代码段等。 三、实验内容 用两种方法把字符串复制到串中去; (1)从左到右的方向复制 (2)从右到左的方向复制 ' $' (?) ;************************************************ , , : 实验步骤: )用文字编辑工具(记事本或)将源程序输入完整后保存在:\下,注意保存时将文件扩展名改为(如)。 )打开桌面的“命令提示符”程序进入命令操作,先用命令改变路经,接着用”文件名” (如,这里文件名可以不带扩展名) 对源文件进行汇编,产生文件和文件。若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。 )用”文件名” (如;) 将文件连接成可执行的文件()。 )用调试程序,熟悉命令的使用: ()打进入控制,显示提示符‘‘。 ()用命令执行程序,可得与步骤相同的结果,也可用命令逐条运行这些指令,每运行一

行检查并记录有关寄存器及的变化情况,并注意标志位有无变化。 ()用命令检查键入的程序并记录,特别注意左边的机器码和指令地址。如果一条命令没有显示完全,可以再次输入命令,该命令会紧接着上一个命令的输出继续显示。 ()用命令’地址’设置断点,如,表示将断点设置在代码段的偏移地址为的指令前,并执行到该断点前。其中,命令中的地址项可以从上条命令的运行结果获得。 ()用命令查看各寄存器的情况。 ()用命令查看数据段的情况,表示从偏移地址开始,也可以指定其他偏移地址值。 ()用命令‘地址’的方式修改数据区的字符串,其中’地址’指需要修改的数据段内存单元偏移地址,可根据上条命令获得。如表示从偏移地址开始修改数据。 ()再次用命令执行程序,查看执行结果。 ()用命令退出,如果在上述步骤中碰到异常,可以先用命令退出后再进入调试。 四、实验报告或作业 .分析程序,画出程序流程图 .汇编,连接及调试时产生的错误,其原因及解决办法。 .思考: ) 上述实验中用修改数据段的内容,是否改变原文件的内容? ) 用单步执行命令运行程序,运行到 , ,指令后,和寄存器内容前后有何变化,产生变化的原因是什么? 附使用: .打进入 ,显示提示符‘‘。 .退出命令 .显示内存命令起始地址结束地址 .修改内存命令起始地址,连续修改打空格键。打回车键退出命令。 .检查寄存器命令 标志位显示 .修改寄存器命令寄存器名 .小汇编命令起始地址,不输入指令打回车键退出命令。 .反汇编命令起始地址结束地址 .文件命名命令盘号:文件名 .读文件命令内存地址 .写文件命令内存地址 .读扇区命令内存地址盘号(:) 扇区号扇区数 .写扇区命令内存地址盘号扇区号扇区数 .运行命令起始地址结束(断点)地址 .单步命令起始地址运行指令数,进入子程序内部。 .单步命令起始地址运行指令数,不进入子程序内部。 .内存搬家命令起始地址结束地址目的地址 标志位显示 .修改寄存器命令寄存器名 .小汇编命令起始地址,不输入指令打回车键退出命令。 .反汇编命令起始地址结束地址 .文件命名命令盘号:文件名 .读文件命令内存地址

汇编语言第十章答案

10.1写出指令,选择显示方式10H,并将背景设为绿色。 答:MOV AH,00H MOV AL,10H;选择显示方式10H(16色图形) INT10H MOV AH,10H MOV AL,00H MOV BH,10H;背景设为绿色(02H也可以,是用DEBUG调试出来的) MOV BL,0;选择0号调色板 INT10H 设置背景色也可用: MOV AH,0BH;设置背景色和调色板 MOV BH,0;设置背景色功能 MOV BL,8;绿色背景 INT10H 10.2如何使用INT10H的功能调用改变显示方式? 答:在AH中设置功能号00H,在AL中设置显示方式值,调用INT10H即可。 10.3VGA独有的一种显示方式是什么? 答:像素值为640×480,可同时显示16种颜色,这种显示方式(12H)是VGA独有的。10.4对于EGA和VGA显示适配器,使用显示方式13H时(只有VGA有),显示数据存在哪里? 答:显示数据存在显示存储器里。 10.5对于VGA的显示方式13H时存放一屏信息需要多少字节的显存? 答:需要64000个字节。 10.6利用BIOS功能编写图形程序:设置图形方式10H,选择背景色为蓝色,然后每行(水平方向)显示一种颜色,每4行重复一次,一直到整个屏幕都显示出彩条。 答:程序如下: TITLE https://www.wendangku.net/doc/e414436201.html, codeseg segment assume cs:codeseg,ds:codeseg,ss:codeseg org100h main proc far mov ah,00h mov al,10h;选择显示方式10h(16色图形) int10h mov ah,0bh mov bh,00h mov bl,01h;背景设为蓝色 int10h mov ah,0bh mov bh,01h mov bl,00h;设置调色板0# int10h mov bx,0;显存的第0页 mov cx,0;起始列号为0列

汇编语言实验一

淮阴工学院 汇编语言程序设计实验报告 选题名称:实验一调试工具的使用方法训练 系(院):计算机工程学院 专业:计算机科学与技术 班级: 1101 姓名:康志杰学号: 1101301132 指导教师:王福德 学年学期:2013 学年第 2 学期 2013 年 4 月15 日

实验一利用DEBUG调试程序调试程序段 <1 > 实验目的: (1)熟悉DEBUG有关命令的使用方法 (2)利用DEBUG掌握有关指令的功能 (3)利用DEBUG运行简单的程序段 <2 > 实验内容 (1)进入和退出DEBUG程序 1)开始——运行,输入cmd,点确定或回车键进入DOS环境 2)在命令窗口输入debug进入debug程序 3)进入debug程序后,按q退出

(2) 学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命 令、N命令、W命令等,也应试一下。 1 显示存储器单元命令D 格式:D [<地址范围>] 功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII码字符显示。 2 写存储器单元命令E 格式:E <地址> [<字符串>] 功能:逐个修改指定单元内容或将字节串写入指定的一组连续单元。 例:将字节串′computer′写入以100H为起始地址的存储器区。 -E 100′computer′ 3显示和修改某个指定寄存器内容, 格式为:-R 寄存器名 例如打入:-R AX 系统将响应如下: AX 0000

: 表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0000 :1000 则BX内容由0000改为1000 4显示和修改标志位状态, 命令格式为:-RF 系统将给出响应,如 NV UP EI PL NZ NA PO NC- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如 NV UP EI PL NZ NA PO NC-ZR CY

汇编语言实验

汇编语言实验大纲 一、说明 (一)实验教学目的 本课程为计算机应用专业的必修课程,主要讲述微机的体系结构和汇编语言程序设计方法。为配合这门课程的正常教学,取得良好的教学效果,培养学生实际的动手能力,使学生熟练掌握汇编语言分支、循环、子程序及输入输出程序的设计,掌握DOS、BIOS功能调用方法,掌握文件的读写方法。 (二)实验要求 掌握计算机的基本系统结构,了解掌握汇编语言 (三)实验课时安排 二、实验内容 实验一 DEBUG的应用 实验目的:熟悉DEBUG的应用,为学习指令系统打好基础。 实验内容:1.利用DEBUG观察寄存器的值。

2.直接汇编指令,单步调试,编辑数据等。 实验二指令系统实验: 实验目的:1.掌握指令系统,熟悉DEBUG的使用。 2.掌握8086的编程结构。 实验内容:1.利用DEBUG 直接向内存中汇编课堂上讲过的指令。 2.单步跟踪调试,观察寄存器的变化和指令执行的结果,加深对 指令的理解。 实验三汇编语言语法练习 实验目的:1.学习汇编源程序的编辑、编译、链接的全过程。 2.学习EDIT、MASM及LINK的使用 实验内容:1.在存储单元A起有两字节的无符号加数,在存储单元B起有两字节的无符号被加数,编写一段程序,求其两数相加,结果存回A单元处,然后汇编、链接、运行。 2.试编写一程序,比较两个字符串STRING1和STRING2所含的字符是否相同。若相同,则显示“Match”;否则,显示“No match” 实验四分支程序设计 实验目的:掌握分支程序设计的原理和方法,重点掌握各种分支程序中形成和判断条件而产生的程序段的设计方法和技巧法. 实验内容:1.将字符串转换成大写字母字符串。 2.根据用户键入的月份数在终端上显示该月的英文缩写名。 实验五循环程序设计

汇编语言第四章答案

4.1 指出下列指令的错误: (1) MOV AH, BX ;寄存器类型不匹配 (2) MOV [BX], [SI] ;不能都是存储器操作数 (3) MOV AX, [SI][DI] ;[SI]和[DI]不能一起使用 (4) MOV MYDA T [BX][SI], ES:AX ;AX寄存器不能使用段超越 (5) MOV BYTE PTR [BX], 1000 ;1000超过了一个字节的范围 (6) MOV BX, OFFSET MYDA T [SI] ;MYDA T [SI]已经是偏移地址,不能再使用OFFSET (7) MOV CS, AX ;CS不能用作目的寄存器 (8) MOV ECX, AX ;两个操作数的数据类型不同 答:见注释。 4.2 下面哪些指令是非法的?(假设OP1,OP2是已经用DB定义的变量) (1) CMP 15, BX ;错,立即数不能作为目的操作数 (2) CMP OP1, 25 (3) CMP OP1, OP2 ;错,不能都是存储器操作数 (4) CMP AX, OP1 ;错,类型不匹配,应为CMP ax, word ptr op1 答:见注释。 4.3 假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列哪些指令是非法的?它们的错误是什么? (1) MOV BP, AL ;错,寄存器类型不匹配 (2) MOV WORD_OP [BX+4*3][DI], SP (3) MOV WORD_OP1, WORD_OP2 ;错,不能都是存储器操作数 (4) MOV AX, WORD_OP1[DX] ;错,DX不能用于存储器寻址 (5) MOV SA VE_WORD, DS (6) MOV SP, SS:DA TA_WORD [BX][SI] (7) MOV [BX][SI], 2 ;错,[BX][SI]未指出数据类型 (8) MOV AX, WORD_OP1+WORD_OP2 (9) MOV AX, WORD_OP1-WORD_OP2+100 (10) MOV WORD_OP1, WORD_OP1-WORD_OP2 答:见注释。 4.4 假设V AR1和V AR2为字变量,LAB为标号,试指出下列指令的错误之处: (1) ADD V AR1, V AR2 ;不能都是存储器操作数 (2) SUB AL, V AR1 ;数据类型不匹配 (3) JMP LAB [SI] ;LAB是标号而不是变量名,后面不能加[SI] (4) JNZ V AR1 ;V AR1是变量而不是标号 (5) JMP NEAR LAB ;应使用NEAR PTR 答:见注释。 4.5 画图说明下列语句所分配的存储空间及初始化的数据值。 (1) BYTE_V AR DB ‘BYTE’,12,-12H,3 DUP(0,?,2 DUP(1,2),?) (2) WORD_V AR DW 5 DUP(0,1,2),?,-5,‘BY’,‘TE’,256H 答:答案如下图所示。 4.6 试列出各种方法,使汇编程序把5150H存入一个存储器字中(如:DW 5150H)。 4.5题答案 42H

汇编语言程序设计第一二三阶段在线作业

第一次在线作业)单选题 (共40道题 2.51.(分)8086CPU在基址变址的寻址方式中,变址寄存器可以为:?CX或、BX A?SI B、CX或?SI C、DX或?DI D、SI或我的答案:D 此题得分:2.5分的源操作数的位置是:,,则指令SI=1234H MOV AX,[BX+SI+2]2.52.(分)已知BX=2000H?的字节、数据段中偏移量为3236H A?的字节、附加段中偏移量为3234H B?的字节、数据段中偏移量为3234H C?的字节D、附加段中偏移量为3236H我的答案:分A 此题得分:2.5IP(2.5分)在程序执行过程中,寄存器中始终保存的是: 3.?、上一条指令的首地址A?、下一条指令的首地址B ?、正在执行指令的首地址C ?、需计算有效地址后才能确定地址D我的答案:2.5分B 此题得分:,那32K16分)位二进制)是某系列微机对存储器的分段,如果每一个段最多的字存储单元(2.54.(么表示段内字节单元偏移地址的二进制位数应是:?位20 A、?位16 B、?位C、15 ?位12 D、我的答案:B 此题得分:2.5分(2.5分)可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是:5.?DXCX,AX A、,BX,?SS,CSB、DS,ES, ?BXBP,IP,,C、SP?BXBP,,D、SIDI,我的答案:分D 此题得分: 2.5 . . . . 顺序存放在连续两个字存储单元中,可选用Ⅱ码两个字符的ASC41H,42H分)6.(2.5 要求将A,B的语句是:?‘AB'B A、DA1 D ?‘AB'DW B、DA1 ?ABHB C、DA1 ?ABHW D、DA1 我的答案:2.5分A 此题得分:下面语句中有语法错误的语句是:7.(2.5分)?5HDB A、?ABCDHB、DW ?‘ABCD'C、DW ?‘AB'、DDD 我的答案:分2.5C 此题得分:(2.5分)寄存器间接寻址方式中,操作数存放在:8.?、通用寄存器A?、堆栈B?、程序计数器C?、主存单元D 我的答案: D 此题得分:2.5分 2.5(分)操作数地址存放在寄存器的寻址方式称为:9.?、变址寻址A ?、寄存器寻址B?、相对寻址C?、寄存器间接寻址D我的答案:此题得分:2.5分D 操作数的物理地址是:BYTE PTR[DI](10.2.5分)设DI=3942HDS=8225H,,指令NEG ?85B92H、A?86192H、B?BB690H C、?12169H、D我的答案:2.5分A 此题得分:下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是:分)(2.5 11.?DX,BXCX,,、 AAX . . . . ?DI,SI,、BBX,BP?DXBP,,C、SP,IP ?SSES,、DCS,DS, 我的答案:2.5分B 此题得分:分配的存,10H),3BUF5) 上述语句汇编后,为变量12.10H (2.5分)BUF DW DUP(3 ,DUP(2储单元字节数是:?80HA、 ?100HB、 ?124C 、?192、D我的答案:此题得分:2.5B 分13.发出的访问存储器的地址是:(2.5分)CPU?、物理地址A?、偏移地址B?、逻辑地址C?、段地址D我的答案:分A 此题得分:2.5]指令中的操作数的数据类型是:BYTE DEC PTR[BX14.(2.5分) ?、字A?、双字B?、字节C?、四字D我的答案:C 分此题得分:2.5BUFFER称为:,0AH 中,15.(2.5分)在语句BUFFER DB 01H?、符号A?、变量B?、助记符C?、标号D我的答案:B 此题得分:2.5分将数据5618H存放在存储单元中的伪指令是:16.(2.5分)?1856HDATA1 DW A、

汇编语言实验整理

1.设计程序。实现Y=2X+3,X是一位十进制数。要求X从键盘输入,在下一行 显示“Y=2X+3=”以及十进制计算结果。 data segment\x db?\y dw?\mess1db0ah,0dh,'input x:$'\mess2db 0ah,0dh,'Y=2X+3=$'\data ends\code segment\assume cs:code,ds:data\start:\mov ax,data\mov ds,ax\let3:\mov dx,offset mess1\mov ah,9\int21h\mov ah,1\int21h\cmp al,'0'\jb out1\ cmp al,'9'\ja out1\and al,0fh\mov bl,2\mul bl\add ax,3\mov y,ax\mov cx,0\mov bx,10\let0:\mov dx,0\inc cx\idiv bx\push dx\cmp ax,0\jne let0\mov dx,offset mess2\mov ah,9\int 21h\let1:\pop ax\add ax,0030h\mov dl,al\mov ah,2\int21h\ dec cx\cmp cx,0\jnz let1\jmp let3\out1:\mov ah,4ch\int21h\ code ends\end start 2.编写程序,将键盘输入的小写字母变为大写字母显示在屏幕上,输入小写字 母以外的其它字符则退出。 data segment\mess1db0ah,0dh,'xiaoxieinput:$'\mess2db 0ah,0dh,'daxieoutput:$'\data ends\code segment\assume cs:code,ds:data\start:\mov ax,data\mov ds,ax\let2:\mov dx,offset mess1\mov ah,9\int21h\mov ah,1\int21h\cmp al,'a'\jb out1\ cmp al,'z'\ja out1\mov bl,al\mov dx,offset mess2\mov ah,9\int 21h\let0:\sub bl,20h\mov dl,bl\mov ah,2\int21h\jmp let2\out1:\mov ah,4ch\int21h\code ends\end start 3.设计程序。实现Z=X/4+16*Y,X和Y都是一位十进制数。要求从键盘输入, 在下一行显示“Z=X/4+16*Y”以及十进制计算结果。 data segment\mess1db0ah,0dh,'input x:$'\mess2db0ah,0dh,'input y:$'\ mess3db0ah,0dh,'z=x/4+16*y=$'\data ends\code segment\assume cs:code,ds:data\start:\mov ax,data\mov ds,ax\let0:\mov dx,offset mess1\mov ah,9\int21h\mov ah,1\int21h\mov cl,2\sub al,30h\ mov ah,0\sar ax,cl\mov bl,al\mov dx,offset mess2\mov ah,9\int 21h\mov ah,1\int21h\sub al,30h\mov ah,0\mov cl,4\sal ax,cl\ add al,bl\mov bx,ax\mov dx,offset mess3\mov ah,9\int21h\let1:\ mov ax,bx\mov cx,0\mov bx,10\let2:\mov dx,0\inc cx\idiv bx\ push dx\cmp ax,0\jne let2\let3:\pop ax\add ax,0030h\mov dl,al\ mov ah,2\int21h\dec cx\cmp cx,0\jne let3\mov ah,4ch\int

《汇编语言程序设计》1~10章习题答案

1.1 1.2 1.3 1.4 1.5 (字长 n=8) 1.6 1.7 (1) (2) (3) (4) (5) 1.8 设补码长度为字节(即为8位) 1.9 (1) 21-(-18)= 15H-0EEH= 27H (2) 71- 36 = 47H- 24H= 23H (3) -5+ 120 =0FBH+ 78H= 73H (4) -10- 20 =0F6H- 14H=0E2H (5) -85-(-40)=0ABH-0D8H=0D3H 1.10 57H,69H,6EH,64H,6FH,77H,73H,20H,39H,35H, 56H,69H,73H,75H,61H,6CH,20H,62H,61H,73H,69H,63H P26 第二章习题·答案 2.6 见P19 堆栈:内存中以”先入后出”为原则存取、最大空间为64KB 的存储区域称之为堆栈 栈底:栈区最高地址单元的前一个单元为栈底 2.7 2.8 4017H:000AH=4017AH 4015H:002AH=4017AH 4010H:007AH=4017AH 说明了同一个物理地址可以用多个逻辑地址表示。

3.1(1) 寄存器寻址 (2) 寄存器间接寻址, 物理地址=30700H (3) 变址寻址/寄存器相对寻址,物理地址=31804H (4) 基址寻址/寄存器相对寻址,物理地址=41700H (5) 基址变址寻址, 物理地址=30800H (6) 相对基址变址寻址, 物理地址=42504H 3.2(1) 错:源不能是基址基址寻址。 (2) 错:源和目不能同时为内存单元。 (3) 错:直接给出的移位位数不能是3。 (4) 错:取反指令只能有一个操作数。 (5) 错:不能将立即数直接送入段寄存器。 (6) 错:目不能是段寄存器CS。 (7) 错:第一个操作数不能是立即数。 (8) 当VALUE1为字变量时,对;否则为错:源和目的类型(长度)不一致。 (9) 错:源和目不能同时为段寄存器。 (10)对。 (11)错:出栈指令的目不能是立即数。 (12)错:输入指令的目必须是累加器,源必须是小于0FFH的端口地址 或者是存放端口地址DX寄存器。 (13)错:源不能是立即数。 (14)错:寄存器CX不能用于寄存器间接寻址。 3.3 MOV AX,84A0H ;所有的标志位保持不变 ADD AX,9460H ;AF=0,CF=1,OF=1,SF=0,ZF=0,PF=1。 3.4(1) SUB AX,AX;或用XOR AX,AX;或用 MOV AX,0;或用 AND AX,0 (2) MOV CL,4 ROR BL,CL ;也可以用 ROL BL,CL (3) ①若都为字节变量,程序如下:②若都为字变量,程序如下: MOV AL,N1 MOV AX,N1 CBW CWD IDIV N2 IDIV N2 MOV M1,AL MOV M1,AX MOV M2,AH MOV M2,DX (4) AND BX,0F7AFH;0F7AFH =1111 0111 1010 1111B (5) XOR AX,4020H ; 4020H =0100 0000 0010 0000B (6) TEST DX,0201H ; 0201H =0000 0010 0000 0001B (7) OR CX,1 3.5(1) MOV BX,OFFSET BLOCK+(6-1)*2 MOV AX,[BX] (2) MOV BX,OFFSET BLOCK ;也可以用LEA BX,BLOCK MOV AX,10[BX] (3) LEA BX,BLOCK MOV SI,0 MOV AX,10[BX+SI] (4)MOV AX,BLOCK+10 3.6(1) (BX)= 009AH (3) (BX)= 8071H (4) (BX)= 10F7H (2) (BX)= 0061H (5) (BX)=0FF1CH 3.7(AX)=8D00H,(CX)=0004H 3.8(1) JCXZ L2 (2) L1: JCXZ L2 DEC CX CMPSB JZ L1 L2: 3.9 MOV CL,3 MOV BX,4DABH ;(BX)= 4DABH ROL BX,1 ;(BX)= 9B56H ROR BX,CL ;(BX)=0D36AH 3.10 MOV AX,BCD1 ADD AL,BYTE PTR BCD2 DAA MOV BYTE PTR BCD3,AL MOV AL,AH ADC AL,BYTE PTR BCD2+2 DAA MOV BYTE PTR BCD3+2,AL 程序段执行完后,BCD3 单元的值如左示: 3.11 CLD LEA SI,STRING1 LEA DI,DESTIN MOV CX,20 ;也可以这样 MOV CX,20/2 REP MOVSB ; REP MOVSW 3.12MOV AX,X CMP AX,50 JG N_HIGH SUB AX,Y JO OVERFLOW ;求绝对值 JNS L ;正数转 NEG AX ;负数的补码求补=绝对值L: MOV RESULT,AX 3.13设变量单元为字长 (1) MOV AX,W SUB AX,Z SUB AX,X MOV Z,AX (2) MOV AX,W ADD AX,X ADD AX,6 SUB AX,R SUB AX,9 MOV Z,AX (3) MOV AX,W MUL AX,X ADD Y,6

汇编语言实验

实验四屏幕字符显示程序 实验目的: 通过实验掌握下列知识: 1、8088指令: JMP,ROR,XOR,HLT。 2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。 3、直接向视频RAM(VRAM)送ASCII码进行屏幕显示的方法。 4、IBM-PC机的ASCII码表及控制字符。 5、命令(。COM)文件及使用方法。 6、利用^Break退出程序的方法及局限性。 实验内容及步骤: 一、利用INT 21 0AH号功能调用显示字符串。 1、用A命令在100H处键入下列程序: MOV AH, 9 MOV DX,110 INT 21 INT 20 2、用A命令在110H处键入下列字符串的ASCII码: DB 'This is a sample!$' 3、用N命令和W命令将此程序(包括数据区)存入文件名为AA。COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。 4、用Q命令退出DEBUG。 5、在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。

二、利用INT 21H 2号功能显示字符: 1、用A命令在100H处键入下列程序: XOR DL,DL MOVCX,100 LOP:MOV AH,2 INT 21 INC DL PUSH CX MOV CX,8 DELY: PUSH CX MOV CX,0 J: LOOP J POP CX LOOP DELY POP CX LOOP LOP INT 20 2、用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同? 3、按CTRL+BREAK退出此程序,若一次不行可多做几次。

汇编语言-在线第1周3

汇编语言程序设计 MASM开发软件

Windows操作系统平台 MASM 6.15汇编程序硬件BIOS 应用程序 *.ASM, *.OBJ *.LST, *.EXE 操作系统 编辑程序,汇编程序 连接程序,调试程序

汇编程序将汇编语言源程序转换为机器代码 微软宏汇编程序MASM ?MASM 6.11是最后一个独立发行的MASM 软件包?MASM 6.15来自Visual C++6.0 (支持到Pentium 4的SSE2 指令系统)汇编语言程序与汇编程序 是两个不同的概念 汇编语言程序与汇编程序是两个不同的概念

基本开发软件环境(取自MASM 6.11和Visual C++ 6.0)?MASM主目录:本书I/O库、包含文件及批处理文件 ?BIN子目录:进行汇编、连接及配套程序文件 ?HELP子目录:MASM 6.11帮助文件 ?WINDBG子目录:Windows调试程序 ?PROGS子目录:示例程序或用户程序 建议安装到D分区的MASM目录

MASM 6.15汇编程序 ?ml.exe主程序文件 ?ml.err错误信息文件 连接程序(Linker) ?link16.exe16位DOS连接程序 ?link32.exe32位Windows连接程序 子程序库管理程序 ?lib16.exe16位DOS库管理程序 ?lib32.exe 32位Windows库管理程序

应用于32位Windows平台的文件 ?eg0000.asm源程序模板文件 ?io32.inc32位包含文件 ?io32.lib32位I/O子程序库文件 ?make32.bat32位应用程序快速创建文件?WIN32.bat快速进入32位控制台文件 ?windbg 调试程序的快捷方式

相关文档