汇编语言程序设计实验指导.doc

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计实验指导

汇编语言程序设计实验指导 【实验提要】 以下列举的10个实验,都是以Intel的8086及后续系列微处理器的指令系统为核心,采用宏汇编工具MASM6. X以及调试工具DEBUG或DEBUG32,针对本教材所述内容进行相关的上机实践。旨在帮助学生加深认识和理解理论教学知识,通过大量的上机实验熟悉8086 CPU的指令功能、用途和使用技巧,进而提高汇编语言程序设计的能力。 (带*号的为选作内容) 实验一 实验目的 内容及步骤 二、8086常用指令练习 1、传送指令 用A命令在内存400H处键入下列内容: -A 0400 ****:0400 MOV AX,1234 ****:0403 MOV BX,5678 ****:0406 XCHG AX,BX ****:0408 MOV AH,10 ****:040A MOV AL,20 ****:040C MOV CX,89AB ****:040F XCHG AX,CX ****:0411 - 注:****为段寄存器CS的当前值,内容是不一定的,每行命令以回车键结束。 用U命令检查键入的程序并记录,特别注意左边的机器码与指令的对应关系。 -U 0400 用T命令逐条运行这些指令,每运行一行指令观察各寄存器及IP的变化情况,并注意标志位的变化情况。 -T =0400 (注:=400是表示从偏移地址400处开始单步执行) -T (不给出地址,则表示接续上一条指令执行) -T ┇ 2、加减法指令: 1)用A命令在内存100H处键入下列内容: MOV AH,11 MOV AL,22 ADD AL,AH SUB AL,33 MOV CX,1234 MOV DX,5678 ADD CX,DX SUB CX,AX SUB CX,CX 2)用U命令检查键入的程序及对应的机器码。 3)用T命令逐条运行这些指令,检查并记录有关寄存器及ZF情况。 3、带进位加减法: 1)用A命令在内存200H处键入下列内容,并用U命令检查: MOV AH,12 MOV AL,84 MOV CH,56 MOV CL,78 ADD AL,CL ADC AH,CH MOV DH,A7 MOV DL,58 SUB DL,7F SBB DH,34 2)用T命令逐条运行这些指令,检查并记录有寄存器及CF内容。 3)上面这段程序若改用16位操作指令达到同样结果,怎么改?试修改并运行之。 * 4、BCD码加减法(选作) 1)内容: MOV AL,65 ADD AL,16 DAA 2)要求:用A 命令键入,U命令检查,T命令逐条运行并记录有关寄存器及AF内容。 注:相加后AL值本来是7B,经DAA指令调整后变为81,即65和16两个BCD码的和。 实验二 内存操作数及寻址方法实验目的 实验内容和步骤 实验三 数据串传送和查表程序实验目的 实验内容及步骤 .model small .stack .data str1 db ABCDEFGHIJ ;待显示的内存区内容 str2 db Please input the number you will display:,10,13,$ .code .startup mov ah,9 mov dx,offset str2 int 21h ;显示STR2字符串的内容,即提示信息 mov ah,1 int 21h ;输入待显示的字符序号(0-9) mov bx,offset str1 sub al,30h xlat ;查STR1表,对应序号的字符ASCII码进入AL mov dl,al mov ah,2 int 21h ;显示对应字符 .exit 0 End 2、程序汇编通过后,在运行过程中输入0-9的任意数字,显示STR1字符串中对应位置 的字符。 3、在DEBUG环境中,用P命令调试执行该程序,察看AL寄存器的变化情况及结果的输出, 分析其执行过程。 二、数据串传送程序 1、编辑下列程序: .model small .stack .data str1 db abcdefghijklmn ;源串定义 lengs equ $-str1 str2 db lengs dup (?),$ ;目标串 .code .startup mov ax,ds mov es,ax ;使DS和ES为同一个段 cld lea si,str1 lea di,str2 mov cx,lengs rep movs

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档