《汇编语言程序设计》习题解答及课程实验、设计辅导_第1页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第2页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第3页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第4页
《汇编语言程序设计》习题解答及课程实验、设计辅导_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1实验一 ( 1) 熟悉汇编程 序的汇编、连接、执 行过程 ;( 2) 生成 看 ( 3) 生成 件,修改 语法错误 ;( 4) 生成 ( 5) 执行 程序。汇编程序从 编写到执行的过程编程 译 接 载 内存中的程 序 执行1) 编写源程序用 各段 , 并存储成源 程序 ( 保存 在 , 扩展名 为 ) 对源程序进 行 汇编 、连接操作如下:( 1) 在 入 ( 2) 输入命令: 同扩展名 ) ;( 3) 在系统出现 的提示中输入:e. :按回车键 。 输入 : 文件主名 , 生成 件 , 也可以不生成 , 直接按回车键。 件用于查 看编译为目标文件的 过程中产生的中间结 果。按回车键 。( 4) 如果系统没有提示出错,那么编译过程就完成了。如果提示错误则应用 开源文件进 行修改,然后再重复 2和 3步骤( 5) 输入: 件主名( 不要输扩展名 ,也可以输 入扩展名 . 按回车键 。m :按回车键 。按回车键 。( 6) 没有提示错 误 , 汇编过程就 结束了 , 产生了 执行文件 。 如果出现 no 的 错误警告, 不用理会 。3) 执行程序( 由 载入内存)在 直接输入文件主名就可以执行文件了 。程序执行后, 有的会显示结果, 有的 可能执行后 什么结果都没有,是 因为程序中没有显示 命令。将下面的数 据段输入 , 取名 1. 保存在 生成 ( 不必连接 、 运行 ) 用 试回答 : 是多少? 0B 000输入下面错 误的文件,修改错误 语句 。 ( 即可。不必连接 、 运行 。 )将 B为 B 确代码:5,025504H, 6B 5678)S: X, S, I, X, X, 0L, 4X, X, ,H, 41输入下面程 序 并 运行28)B, 13, 10, $S: X, S, X, H, 91H, 41B , 13, 10, $ 序 1) 学习使用 ( 2) 使用 中查看程序运行的 结果 ;( 3)利用 序段。入程序 观察寄存器变化使用 将下面的程 序段写入内存 , 逐条执行 , 观察每条指 令执行后 , 内容变化。注意用 X, 4X, 1416X, 2000X, X, X, X, 001X, 0026L, H, H, H, 0L, L, 92) 下列程序单 步运行,注意 ,并观察数据段字 母的变化 。 如果是将小写 字母改成大写字母带 注释的语句该如何修 改 ?B S: X, S, X, X, 3S: L, L, 11011111B ; 将 的第 5位置 0,; 变成大写字 母。 L, 0H, 41序的跟 踪执行操作在 的程序会显示结果,可能执行后什么结果都 没有,是因为程序中 没有显示命令。那么 如何查看程序的运行 结果呢? 程序执行过 程的跟踪 操作步骤如 下:( 1) 在 2)在 入 数据段,可以看到 反汇编后第一句可执 行语句为:X, : 1261: 0000X, 1260其中: 段的段寄存器内容 , 段寄存器地址, 令的偏移地址 。( 3) 可以用 行到 H, 4 也可以用 序,输入: G=: G=0000)( 4) 用 执行后数据段的变 化输入: D 0 ( 如: 0)在显示的数 据中,对照源程序或 所在的偏移地址的 内容 。4) 输入下面的 程序 , 按 实验一和 上面的步骤 运行一遍 。 这是一个两 个数相 与 的程序 。结果存放在 移地址为?值为多少 ?2038W?S: X, S, X, X, L, 0H, 41的程序,用 的结果1) )/()510*)( += , X, Y, 量 , 结果存于 写出数据段 和代码段。 2) X, , 求 16/)2*)(8*)( += , 写出完整的 数据段和代码段, 不用乘除指令 。10实验三 分支 循环 1) 学习调试程 序,查找逻辑错误 ;( 2) 学习 分支语句 的编程和调 试 ;( 3) 学习循环语 句的编程和调试 。有 10个数 , 统计正数的 个数 , 存放在变量 经过汇编后 , 形成 在 先用 G 0命令执行程 序 , 用 单元的内容 , 会发现结果 不正确。用单步执行命令 T 0,单步执行程序,查找程序中的逻辑错误,注意每一次循环 中变化是否正确 ?( 正数的个数)B 4, 0, 5, 67, 8, 5, 6M S: X, S, X, 10L, 0I, L, L, 01, L, 0H, 41数据段中是 一组无符号数 , 将最小数存 放在 按上题方法 查找一处逻辑错误。B 13, 15, 7, 25, 24M S: X, S, X, 4L, I, L, B L, 1, L, 0H, 41编程 : 在 首地址为 0个字节数 , 求 其中 0的个数 ,并将结果 存于 24) 编 程: = = 81i 字节 型 无符 号数 , 分别 存 于 储 单元中 , 结果存于 13实验 四 子程序 1) 学习子程序 的编写,主子程序的 调用 ;( 2) 不同模块间 程序的调用和调试 。数据段中的 3个字符,调用子程序将其逐个显示出来。子程序的功能是显示一个字符 。 单步执行 , 对 P, 并用 的内容。B S: X, S, I, 0X, 3L, IH, 41H, 021阅读 并分别汇编 , 然后连接成一个可执行文件 体步骤如 下 :31. 分别汇编 )32. 31 将两个文件 连接 成为一个文 件名为 运行)3) 编程:利用主程序调用子程序,比较 将不相等的 字符显示出来 。 ( 也可以将找 到的不相等字符逐个 显示 , 用 2功能调用)4) 编程:子程 序搜索指定字符缓冲 区中是否有 N,如果有用 用 子程序 将全部用 附源程序:键盘输入 2位非压缩 入 了将其转换为 二进制数 , 编写一个子 程序 显示子程序 6进制数转换 为对应的 并显示该 字符,显示子程序在 另一模块 入数 据为 00时结束 。S: H, 011L, 1H, L, X, 3030H, 41 将输入的 转换成 2进制数X, 0 将 转换成非 压缩 ; 高位在 L, L, 10L, S: L, H, 00H, 4L, 4X, L, L, 0L, 9L, 07L, 30H, 021 1) 学会 能调用指令的用法 ;( 2) 领会修改显 存方法显示字符。输入一个字 符,显示出来 。2) 输入一个字 符串,显示出来 。3) 个 16位二进制数 用十六进制数的形式 显示出来 。( 1) 理解程序( 2) 输入程序, 汇编,运行(在 文件名 . ,观察结果 。( 3) 如果要分行 显示,程序要如何修 改? 560S: X, S, I, 0P: X, IH, 4L: L, 4X, L, L, 0L, 10L, 7L, 30H, 21I, 4H, 41直接改变显 存内容显示 。( 1) 显存空间分 配 :内存地址空间中, 2 8025彩色字符模式显示缓冲区。向这 个地址空间写入数据 ,写入的内容将立即 出现在显示器上。8025 2000个字符,每 个字符在缓冲区中占 2个字节,一 个字节存放 , 一个字节存放 字符属性(字符颜色 、字符背景颜色、闪 烁、高亮度) ( 2) 偏移地址计 算:如第 2行,第 40列 : ( 2160 402 这个偏移地 址中存放字符的 ,( 2160 402 1这个偏移地 址中存放字符的属性 。第 公式为:( 160 N*2存放 ( 160 N*2+1 存放属性( 3) 运行下列程序,在屏幕的第 1行,会显示一个字符 X。根据上面 ( 1) 、 ( 2)点理解程序段 。28)S: X, S, P, 128X, 0S, H, XS: S: 160*1+40*2, L, 0H, 41程 显示 以下图案。*6) 编写程序, 统计字缓冲区中的 20个数据的正 数、负数、 0的个数,并 将统计结果以 16进制形式显 示出来。20实验 六 1)熟悉串操 作指令的功能与应用 ;( 2)掌握串操 作指令的寻址方式及 使用方法,编写常用 的字符串处理程序。入内存 要求统计其中含有小写字母的个 数,并将统计结果以 两位十进制数形式显 示在屏幕上。附参考源程 序:)S: X, S, X, 0I, H, 11L, 0 L, 0H, 21L, 01I, H, 0L, 0L, 61L, 7L, H, 0L, 10H, L, L, 30H, 21L, L, 301H, 41篇 课程设计辅 导实例 1 动画设 计甜蜜 的生活了解并掌握 汇编语言设计的一般 方法,具备初步的独 立分析和设计能力;2) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3) 提高综合运 用所学的理论知识和 方法独立分析和解决 问题的能力;(实验用的软硬件 环境)硬件环境: 设计思路整体:设计 分为两个画面。 第一画面 : 男孩右手拿 花向女孩跑去 , 这时天上忽 然出现了一群小鸟 , 男孩向女孩 求婚,女孩感 动地接受了,迸出一 颗心。第二画面: 两人过着幸福的生活 。两人站在房子外, 气球飘向了天。 计总体结 构图总体结构图 见图 计流程图1静止程序 流程图如图 移动程序 的流程图如图 画示意图 如图 3图 3. 1 程序总 体结构图开始设置为 80*25彩色文 本清屏幕在 21行 48列画静 止女孩在 21行 8列画从 左往右跑 的男孩在 5行 8列画从 左往右飞 的小鸟清除小 鸟并延时在 17行 39列写字 符串m e? 并延时在 20行 53列写字 符串 并延时在 9行 48列画一 颗心并延 时清屏幕 并延时在 2行 64列画一 房子在 15行 48列画一 对男女在 14行 37列画一 颗心在 17 行 24 列 写 字 符 串 a 延时在 21行 24列画一 上升的气 球清屏幕结束音乐响 起24图 3. 2 静止程 序流程图字符个 数送 设置初 始坐标向第 一个字符保存当 前参数 :字符个 数 , 行列坐 标 , 字符首 址根据 偏移计算 行列号是否一 行画完?否置光标 , 写字符是结束向下 一个字符25图 3. 3 移动程 序的流程 图否是字符个 数送 设置初 始坐标向第 一个字符保存当 前参数 :字符个 数 , 行列坐 标 , 字符首 址根据偏 移计算行 列号是否一 行画完?是结束向下 一个字符延 时取参数 :字符个 数,行列坐 标,字符 首址根据偏 移计算行 列号置光标 ,写黑色 字符清除机 器人向下 一个字符为重画 图案设置 字符个数 , 行列坐 标 , 字符首 址否否是置光标 , 写字符图是否 画完?图 是 否 清 除 ?26( a) 等待( b) 相遇, 小鸟飞过( c) 求婚, 心形图案 降落27( d) 幸福生 活开始( e) 音乐响 起,音符 往上升起图 3. 4 动画示 计源程序Y, Z, 堆栈顶数据 弹出到寄存器宏定义28Y, Z, 56)B 8 ;女孩00, 0 ;左手,字 符属性,行偏移,列 偏移8H, 01H, 0, 1 ;胸部,字 符属性,行偏移,列 偏移00, 1 ;右手,字 符属性,行偏移,列 偏移05H, 1, 腹部,字 符属性,行偏移,列 偏移3H, 7H, 1, 0 ;两腿,字 符属性,行偏移,列 偏移2H, 04H, 0 ;面部,字 符属性,行偏移,列 偏移04H, 0 ;天线,字 符属性,行偏移,列 偏移7H, 0字母 8H, 00, 1 ;字母 1H, 00, 1 ;字母 4H, 00, 1 ;字母 7H, 00, 1 ;标点下引 号3H, 00, 1 ;字母 H, 00, 1 ;空格5H, 00, 1 ; 字母 0H, 00, 1 ; 字母 00, 1 ; 标点问号2 ; 男孩00, 0 ; 左手 , 字符属性 , 行偏移 , 列偏移298H, 01H, 0, 1 ; 胸部 , 字符属性 , 行偏移 , 列偏移00, 1 ; 右手 , 字符属性 , 行偏移 , 列偏移02H, 0, 1 ; 花柄5H, 00 ; 花02H, 2, 腹部 , 字符属性 , 行偏移 , 列偏移3H, 7H, 1, 0 ; 两腿 , 字符属性 , 行偏移 , 列偏移2H, 07H, 0 ; 面部 , 字符属性 , 行偏移 , 列偏移8H, 0 字母 00, 1 ; 字母 00, 1 ; 字母 5H, 00, 1 ; 字母 9H, 00, 1 ; 字母 00, 1 ; 标点逗号7H, 00, 1 ; 字母 1H, 00, 1 ; 字母 9H, 00, 1 ; 字母 4H, 00, 1 ; 字母 0H, 00, 1 ; 空格6H, 00, 1 ; 字母 00, 1 ; 字母 2H, 00, 1 ; 字母 0H, 00, 1 ; 空格00, 1 ; 字母 5H, 00, 1 ; 字母 2 ; 小鸟08H, 0, 006H, 0, 108H, 206H, 0, 108H, 3, 06H, 0, 108H, 206H, 0, 108H, 3, 06H, 0, 108H, 3, 06H, 0, 1B m e ?B I B 90 ;房子03H, 0, 0 ;屋顶上升 面03H, 1, 03H, 1, 03H, 1, 03H, 1, 03H, 1, 05 ;窗户00, 101, 00, 103H, 0 ;屋顶的下 降面03H, 1, 103H, 1, 103H, 1, 103H, 1, 103H, 1, 103H, 1, 0 ; 屋顶的横03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 1, 房子的一竖03H, 1, 003H, 1, 003H, 1, 003H, 1, 003H, 1, 003H, 1, 000, 6 ; 门8H, 000000, 101, 001, 003H, 0, 6 ; 房子的另一 竖03H, 003H, 003H, 003H, 003H, 003H, 03203H, 7, 0 ; 房底的横03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 03H, 0, 02H, 0, 左边的花5H, 05H, 002H, 1, 15H, 05H, 002H, 1, 15H, 05H, 002H, 1, 15H, 05H, 002H, 1, 15H, 05H, 002H, 1, 15 ; 右边的花5H, 05H, 002H, 1, 15H, 05H, 002H, 1, 15H, 05H, 03302H, 1, 15H, 05H, 002H, 1, 15H, 05H, 008H, 2, 台阶08H, 0, 108H, 2, 08H, 0, 108H, 2, 08H, 0, 108H, 2, 08H, 0, 1B 15 ; 一对男女00, 0 ; 左手 , 字符属性 , 行偏移 , 列偏移8H, 06H, 0, 1 ; 胸部 , 字符属性 , 行偏移 , 列偏移00, 1 ; 右手 , 字符属性 , 行偏移 , 列偏移04H, 1, 腹部 , 字符属性 , 行偏移 , 列偏移3H, 7H, 1, 0 ; 两腿 , 字符属性 , 行偏移 , 列偏移2H, 04H, 0 ; 面部 , 字符属性 , 行偏移 , 列偏移04H, 0 ; 天线 , 字符属性 , 行偏移 , 列偏移02H, 2, 花柄5H, 00 ; 花01, 4 ; 左手 , 字符属性 , 行偏移 , 列偏移8H, 06H, 0, 1 ; 胸部 , 字符属性 , 行偏移 , 列偏移00, 1 ; 右手 , 字符属性 , 行偏移 , 列偏移01, 腹部 , 字符属性 , 行偏移 , 列偏移3H, 7H, 1, 0 ; 两腿 , 字符属性 , 行偏移 , 列偏移2H, 07H, 0 ; 面部 , 字符属性 , 行偏移 , 列偏移B 173H, 04H, 0, 0 ; 心343H, 04H, 1, 03H, 04H, 13H, 04H, 1, 03H, 04H, 1, 03H, 04H, 13H, 04H, 1, 03H, 04H, 1, 03H, 04H, 13H, 04H, 1, 03H, 04H, 1, 03H, 04H, 13H, 04H, 1, 09H, 04H, 18H, 04H, 0, B B 1001H, 0,0 ;气球01H, 1, 00301, 00301, 004, 01, 002H, 302H, 1, 030), 294, 262 ; 音乐频率30)30), 349, 392, 29435262, 262, 00), 800, 400, 400 ; 音乐节奏时 间00), 80000)500, 1600 保存字符个 数 保存字符首 地址B 0 ; 保存行号B 0 ; 保存列号X, S, S, H, 0 ;设置为 80 25彩色文本方 式L, 30清屏幕I, 将 送 X, 1530H ;显示的起 始行号和列号H, 0调用静止 子程序I, 将 送 X, 1508H ;显示的起 始行号和列号H, 0调用左到 右移动子程序I, 将 送 X, 0508H ;显示的起 始行号和列号H, 036I, 0 ;用来判断 调用左到右清除子程 序调用左到 右移动子程序调用右到 左清除子程序调用延时 时间长的子程序P, 将字符串 数据段首地址送 X, X, 1127H ;显示的起 始行号和列号H, 0L, 0闪烁的白 底红字L, 0H, 130调用延时 时间长的子程序P, 将字符串 数据段首地址送 X, X, 1435H ;显示的起 始行号和列号H, 0L, 0闪烁的白 底红字L, 0H, 130调用延时 时间长的子程序I, 将心数据 段首地址送 X, 0930H ;显示的起 始行号和列号H, 0调用静止 子程序调用延时 时间长的子程序清除屏幕调用延时 时间短的子程序I, 将房子数 据段首地址送 X, 0240H ;显示的起 始行号和列号H, 0调用静止 子程序I, 将人数据 段首地址送 , 1530H ;显示的起 始行号和列号H, 0调用静止 子程序I, 将心数据 段首地址送 X, 1425H ;显示的起 始行号和列号H, 0调用静止 子程序P, 将字符串 数据段首地址送 X, X, 1118H ;显示的起 始行号和列号H, 0L, 0闪烁的白 底红字L, 0H, 130调用延时 时间长的子程序I, 将气球数 据段首地址送 X, 1508H ;显示的起 始行号和列号H, 0I, 1 ;用来判断 调用左上移清除子程 序调用 I, 音乐频 率数据段首地址送 I, 音乐节 奏时间数据段首地址 送 X, X, C ; 跳出音乐程 序38X, I, 2I, 2 调用延时时 间长的子程序 清除屏幕H, 4 主程序结束 返回 1 从左往右移 动子程序X, 保存寄存器 内容H, L, ; 字符个数送 I ; 指向第一个 显示符号 保存字符个 数 保存字符首 地址 保存行号 保存列号H, ; 根据偏移值 计算下一个符号的行 号L, ; 计算列号H, 20H ; 设置光标位 置L, ; 取字符L, ; 取字符属性X ; 保存计数值; 设置写彩色 字符H, 9X, 10X ; 恢复计数值I, 4 ; 指向下一个 显示字符 机器人没画 完转 延时子程序L, 50L ; 判断是否到 50列 判断调用哪 个清除子程序 调用左上移 清除子程序 调用左到右 清除子程序X, 清除子程序X, 字符个数送 I, 字符首地址 送 H, 行号送 L, 列号送 H, ; 根据相对偏 移计算行号H, 2 ; 设置光标位 置L, 0L, ; 取字符L, 0 ; 字符属性为 黑底黑字H, 9 ; 写字符, 1400I, 4 ; 指向下一个 字符 ; 未清除完转 X, 为重画机器 人做准备I, H, L, 清楚左上移 子程序X, 字符个数送 I, 字符首地址 送 H, 行号送 L, 列号送 H, ; 根据相对偏 移计算行号H, 2 ; 设置光标位 置L, 0L, ; 取字符L, 0 ; 字符属性为 黑底黑字H, 9 ; 写字符X, 10I, 4 ; 指向下一个 字符2 ; 未清除完转 X, 为重画做准 备41I, 上移H, L, 延时时间 短子程序X, X, 9000X, 8000X, 延时子时间 长程序X, X, 9000X, 9000X, 清屏幕子程 序X, H, 742X, 184X, 0600X, 00X, 静止子程序X, 保存寄存器 内容H, L, ; 字符个数送 I ; 指向第一个 显示符号 保存字符个 数 保存字符首 地址 保存行号 保存列号H, ; 根据偏移值 计算下一个符号; 的行号L, ; 计算列号H, 20H ; 设置光标位 置L, ; 取字符L, ; 取字X; 设置写彩色 字符H, 9X, 10I, 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论