2022年2022年汇编语言实验指导书 .pdf
《2022年2022年汇编语言实验指导书 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言实验指导书 .pdf(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言程序设计实验指导书吉首大学数学与计算机科学学院名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 37 页 - - - - - - - - - 目录实验一熟悉汇编语言的编程过程1实验二汇编数据寻址的方法4 实验三数据传送指令和算术运算指令7 实验四逻辑指令的作用10 实验五循环程序设计 13实验六分支程序设计 15实验七子程序设计 19实验八输入输出程序 23实验九中断程序设计 26实验十系统调用程序设计 .29 附录.31名师资料总结 - - -精品资料欢迎下载 -
2、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 37 页 - - - - - - - - - 实验报告按照微机原理实验项目写!实验一熟悉汇编语言的编程过程实验目的通过实验掌握下列知识: 1、DOS 命令 : CD,DIR,DEL,RENAME,COPY。2、DEBUG 命令 : A,D,E,F,H,R,T,U。3、汇编的编程过程。4、8088寄存器 : AX,BX,CX,DX,F,IP。实验类型 : 验证内容及步骤一、 DOS 常用命令练习1、开机后 , 切换到命令提示符窗口下,出现提示符后键入命令DIR, 查看此
3、目录下所有文件。2、键入命令 CD. 进入上级目录,再查看此目录下所有文件。3、将一张 3.5 寸软盘插到 A驱动器中 , 用DIR命令查看盘上文件。4、用命令 COPY 命令 复制一个文件。5、用命令 REN 命令将拷贝的文件改为BG 。6、用命令 DEL BG 将文件 BG 删除。在操作时要注意提示信息, 并按提示操作。二、 DEBUG 命令使用1、键入 DEBUG 进入 DEBUG 控制状态 , 显示提示符 - 。2、用命令 F100 10F A 将A 的ASCII码填入内存。3、用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。4、用命令 F110 11F 4
4、1 重复上二项实验, 观察结果并比较。5、用命令 E100 30 31 32 , 3F 将30H-3FH写入地址为 100开始的内存单元中, 再用D命令观察结果 , 看键入的十六进制数是什么字符的ASCII码? 6、用H命令检查下列各组十六进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758H,347FH 7、用R命令检查各寄存器内容, 特别注意 AX,BX,CX,DX,IP 及标志位中 ZF,CF和AF的内容。8、用R命令将 AX,BX内容改写为 1050H及23A8H 。名师资料总结 - - -精
5、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 37 页 - - - - - - - - - 2 三、熟悉汇编语言的编程过程1、首先在运行菜单中运行CMD 命令,进入 DOS 状态。2、切入 D: 盘,进入 MASM。3、用EDIT 命令编辑下列源程序。data segment message db Hello World!,$ data ends code segment assume cs:code,ds:data begin:mov ax,data mov ds,ax mov dx,offs
6、et message mov ah,9 int 21h mov ah,4ch int 21h code ends end begin 4、用MASM 命令编译源程序。(如果出错,则需要重新编辑,修改错误)。5、用LINK 命令连接目标文件,生成可执行文件。(可以用 DIR命令查一下 )。6、运行该可执行文件, 检查是否正常输出字符串。实验报告要求1、十六进制数加减法手算结果及实验结果2、8088常用指令练习部分的逐条运行记录, 思考结果及自编程序运行记录( 列出自编程序) 。附: 动态调试器 DEBUG 使用1、键入 DEBUG 进入 DEBUG,显示提示符 -。2、退出 DEBUG 命令 :
7、Q 3、显示内存命令:D 起始地址结束地址4、修改内存命令:E 起始地址 , 连续修改键入空格键,键入回车键退出E命令。5、检查寄存器命令:R 6、修改寄存器命令:R 寄存器名名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 37 页 - - - - - - - - - 3 7、小汇编命令 :A 起始地址 , 不输入指令键入回车键退出A命令。8、反汇编命令 :U 起始地址结束地址9、文件命名命令:N 盘号: 文件名10、读文件命令:L 内存地址11、写文件命令:W 内存地址
8、10、读扇区命令:L 内存地址盘号 (0-A:,1-B:) 扇区号扇区数11、写扇区命令:W 内存地址盘号 扇区号扇区数12、运行命令 :G=起始地址结束( 断点 ) 地址13、单步命令 :T= 起始地址运行指令数 , 进入子程序内部。14、单步命令 :P= 起始地址运行指令数 , 不进入子程序内部。15、内存搬家命令:M 起始地址结束地址目的地址16、十六进制数加法:H 数值数值表1 标志寄存器显示内容一览表标志位显示1 0 CF CY NC ZF ZR NZ SF NG PL AF AC NA OF OV NV PF PE PO DF DN UP IF EI DI 名师资料总结 - - -
9、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 37 页 - - - - - - - - - 4 实验二汇编数据寻址的方法实验目的通过实验掌握下列知识: 1、DEBUG 命令 :G,N,W,L 及Q。2、8088系统中数据在内存中的存放方式和内存操作数的几种寻址方式。3、8088指令 :INC,DEC,LOOP,INT 3,INT 20H,寄存器 SI,DI 。4、8088汇编语言伪操作:BYTE PTR,WORD PTR 。5、求累加和程序和多字节加减法程序。实验类型 : 验证实验内容和步骤一
10、、内存操作数及各种寻址方式使用程序内容:MOV AX,1234 MOV 1000,AX MOV BX,1002 MOV BYTE PTRBX,20 MOV DL,39 INC BX MOV BX,DL DEC DL MOV SI,3 MOV BX+SI,DL MOV BX+SI+1,DL MOV WORD PTRBX+SI+2,2846 操作步骤1)用A命令键入上述程序, 并用 T命令逐条运行。2)每运行一条有关内存操作数的指令, 要用 D命令检查并记录有关内存单元的内容并注明是什么寻址方式。注意 D命令显示结果中右边的ASCII字符及双字节数存放法。思考 : 有关指令中 BYTE PTR 及
11、WORD PTR伪操作不加行不行?试一试。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 37 页 - - - - - - - - - 5 二、求累加和程序 : 程序内容 : MOV BX,1000 MOV CX,10 SUB AX,AX LOP: ADD AL,BX ADC AH,0 INC BX J: LOOP LOP INT3 操作步骤 :1)用A命令将程序键入到100H开始的内存中 , 在键入时记下标号LOP 和J的实际地址 , 在键入LOOP 指令时 LOP 用
12、实际地址值代替。2)用命令 N AA将此程序命名为文件AA(文件名可任取 ) 。3)用R命令将 BX:CX改为程序长度值( 即最后一条指令后面的地址减去开始地址) 。4)用命令 W 100将此程序存到 AA 命名的磁盘文件中。5)用命令 Q退出 DEBUG 。6)用命令 DEBUG AA 再次调入 DEBUG 和文件 AA,可用 U命令检查调入程序。若调入DEBUG 时忘了加 AA 文件名 , 可用 N命令和 L命令将文件调入。7)用E命令在内存地址1000H处键入 16个数字8)用命令 G=100 J(J 用实际地址代替), 使程序运行并停在断点J上, 检查 AX,BX的值是否符合你的预计值
13、。9)用T命令运行一步, 观察程序方向 (IP 值 ) 和CX 值是否与你的估计一样, 若不一样 , 检查程序是否有错。10) 重复 G J与T, 再检查 AX 是否正确。11) 用G命令使程序运行到结束, 检查AX 值是否正确。三、多字节加法程序。程序内容 : MOV DI,1000 MOV CX,8 MOV SI,2000 CLC LOP: MOV AL,SI ADC DI,AL INC SI 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 37 页 - - - -
14、- - - - - 6 INC DI LOOP LOP INT 20 操作步骤 :1)用命令键入此程序。2)用E命令在 1000H开始处键入一个8字节被加数 , 在2000H 开始处键入一个8字节加数 , 均为低字节在前面。3)用G 命令运行此程序, 并用 D命令检查其结果( 存放在哪里 ?), 是否正确 ? 4)将INT 20H 指令改为 INT 3, 有何区别 ?若这条指令不加, 行不行 ?试一试。四、自编程序用16位减法指令编一个32位(4 字节 ) 数减法程序 , 两个源数及结果存放地址同上题。调试并做记录。实验报告要求1、各项实验结果记录。2、自编程序原稿及调试后修正稿, 写出原稿错
15、在那里。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 37 页 - - - - - - - - - 7 实验三数据传送指令和算术运算指令实验目的通过实验掌握下列知识: 1、堆栈。堆栈指示器SP 和堆栈操作指令PUSH 和POP 。2、段寄存器和物理地址计算。3、查表法和查表指令XLAT 。4、数据串传送程序和数据串传送指令MOVS 、STOS 及重复前辍 REP 。5、循环指令 ROL 、逻辑与指令 AND 和清方向位指令CLD 。6、伪操作指令 DB 。实验类型 :
16、验证实验内容及步骤一、利用查表方法把DX 的内容 (十六进制数 )转换成 ASCII 码1、用A命令键入下列程序: MOV BX,1000 MOV DI,2000 MOV CX,4 LOP: PUSH CX MOV CL,4 ROL DX,CL POP CX MOV AL,DL AND AL,0F XLAT CLD STOSB LOOP LOP INT 20 2、用A命令在 1000H处键入下列 ASCII码并用 D命令检查之 : DB ,0123456789ABCDEF ?用D命令检查时注意左边的ASCII码值和右边的字符。3、用R命令给 DX 送一个四位的十六进制数( 例7F8E)。名师资
17、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 37 页 - - - - - - - - - 8 4、 用T命令逐条运行这程序到LOOP 指令处 , 观察并记录每次运行结果, 特别是 SP 和堆栈内容( 用D命令检查 ) 。5、用G命令将此程序运行到结束, 并用 D命令检查 2000H处所转换的结果。可注意屏幕右边的ASCII 字符与 DX 是否一致。二、数据串搬家程序 : 1、用A命令键入下列程序: MOV SI,1000 MOV DI,1500 MOV CX,0F LOP:
18、 MOV AL,SI MOV DI,AL INC SI INC DI LOOP LOP INT 20 2、用A命令 DB 伪指令在 1000H键入下列字符串: IBM_PC COMPUTER 3、用G命令运行此程序, 并用 D命令检查目的地址处的字符与源串是否一致。4、若此程序中的目的地址改为1002H,再运行此程序 , 看能不能把 1000H开始的字符串搬到1002H开始的地方去?修改程序以做到这一点。三、段寄存器概念及字符串传送指令练习1、用A命令键入下列程序: MOV SI,0 MOV DI,0 MOV AX,1000 MOV DS,AX MOV AX,1500 MOV ES,AX MO
19、V CX,0F CLD REP MOVSB INT 20 2、用A命令 DB 伪指令在 1000:0000 处键入字符串 IBM_PC COMPUTER, 并用D命检查之。3、用D命令检查 0F00:1000 处内容 , 看是否一样,为什么? 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 37 页 - - - - - - - - - 9 4、用G命令运行此程序, 检查目的地址 1500:0000 处内容。并记下DS与ES 值。5、修改此程序 , 使ES 与DS 为同一
20、值 , 以减少一条指令, 而源物理地址和目的物理地址( 是多少?) 仍和原来一样。实验报告要求1、各项实验记录和思考题。2、要求你修改的程序的清单( 修改后 ) 和调试记录。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 37 页 - - - - - - - - - 10 实验四逻辑指令的作用实验目的通过实验掌握下列知识: 1、8088指令 : JMP,ROR,XOR,HLT。2、利用 DOS 功能调用 INT 21H 的2号和 9号功能进行屏幕显示的方法。3、直接向视
21、频 RAM(VRAM) 送ASCII码进行屏幕显示的方法。4、IBM-PC机的 ASCII 码表及控制字符。5、命令 (.COM)文件及使用方法。6、利用 Break(CTRL+BREAK)退出程序的方法及局限性。实验类型 : 验证实验内容及步骤一、利用 INT 21 09H 号功能调用显示字符串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 的磁盘文件
22、中。( 存入前BX:CX 必须置为文件长度值) 。4、用Q命令退出 DEBUG 。5、在DOS 命令下键入 AA,运行此程序 , 即在屏幕上显示This is a sample!字符串 , 若不出现, 用DEBUG 检查程序有无错误。二、利用 INT 21H 2 号功能显示字符1、用A命令在 100H处键入下列程序: XOR DL,DL MOV CX,100 LOP: MOV AH,2 INT 21 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 37 页 - - -
23、- - - - - - 11 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退出此程序 , 若一次不行可多做几次。三、直接向 VRAM 送 ASCII 码显示字符1、用A命令在 100H处键入下列程序: MOV AX,B000 MOV DS,
24、AX XOR AL,AL XOR BX,BX MOV CX,100 LOP: MOV BX,AL INC BX INC AL 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、用N命令和 W 命令将此程序存入BB.COM 文件中。 ( 一定要先存入 !) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 37 页 - - - - - - -
25、- - 12 3、用G命令运行此程序, 仔细观察每一个ASCII码显示结果 , 并和字符表及上一道程序运行情况进行对照 , 其控制字符区 (07-0DH) 显示结果和 INT 21H 2 号功能调用有何不同? 四、自编一个程序 ,要求显示 AX 的内容 ,即能显示 AX=xxxx 。调试时 AX 的内容可用 R命令赋值 ,也可用 MOV 指令赋值。实验报告要求1、各项实验记录及观察体会。2、利用 INT 21H 显示和直接向 VRAM 送ASCII码显示方法在显示结果上有什么不同? 3、自编程序草稿及调试结果。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言实验指导书 2022 汇编语言 实验 指导书
限制150内