华南农业大学汇编语言8086习题(附答案)

上传人:飞*** 文档编号:30030640 上传时间:2018-01-27 格式:DOC 页数:54 大小:262.51KB
返回 下载 相关 举报
华南农业大学汇编语言8086习题(附答案)_第1页
第1页 / 共54页
华南农业大学汇编语言8086习题(附答案)_第2页
第2页 / 共54页
华南农业大学汇编语言8086习题(附答案)_第3页
第3页 / 共54页
华南农业大学汇编语言8086习题(附答案)_第4页
第4页 / 共54页
华南农业大学汇编语言8086习题(附答案)_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《华南农业大学汇编语言8086习题(附答案)》由会员分享,可在线阅读,更多相关《华南农业大学汇编语言8086习题(附答案)(54页珍藏版)》请在金锄头文库上搜索。

1、题目名称 实验一 汇编语言程序结构题目关键字 源程序结构 debug题目录入时间 2013-3-13 22:45:26题目内容一 、 实 验 目 的 1 掌 握 汇 编 语 言 程 序 上 机 过 程 。2 掌 握 汇 编 语 言 结 构 。3 了 解 汇 编 程 序 、 连 接 程 序 、 DOS 系 统 装 入 和 返 回 功 能 。4 掌 握 用 DEBUG 调 试 汇 编 语 言 程 序 的 方 法 二 、 实 验 要 求1. 编 写 完 整 的 汇 编 语 言 程 序 :(1)逆 序 输 出 字 符 串 “BASED ADDRESSING”。(2)从 键 盘 上 输 入 2个 一 位

2、 的 正 数 , 求 出 它 们 的 和 ( 假 设 和 不 超 过 1 位 ) 。(3)试 编 写 一 段 程 序 , 要 求 在 长 度 为 100H 字 节 的 数 组 中 , 找 出 大 于42H 的 无 符 号 数 的 个 数 并 存 入 字 单 元 UP 中 ; 找 出 小 于 42H 的 无 符 号数 的 个 数 并 存 入 字 单 元 DOWN 中 。2.在 DEBUG 下 查 看 程 序 执 行 的 过 程 , 以 及 变 量 值 的 变 化 。3.演 示 程 序 运 行 结 果 , 请 指 导 教 师 检 查 。 三 、 思 考1.汇编语言程序中语句 END后的标号作用是什

3、么?2.采 用 标 准 序 结 构 编 制 源 程 序 , 用 ret 结 束 程 序 运 行 返 回 操 作 系 统时 , 可 否 将 语 句 main proc far 中 的 far 属 性 去 掉 , 为 什 么 ?3.一 个 段 的 大 小 为 多 少 ? 一 定 是 64KB 吗 ? 如 何 在 DEBUG 下 查 看 程序 在 内 存 的 存 放 情 况 ?四 、 提 交 内 容将 各 个 源 程 序 代 码 、 exe 文 件 压 缩 为 RAR 后 提 交 到 作 业 系 统 。题目创建人题目注释1.1.asmDATAS SEGMENTString db BASED ADDR

4、ESSINGcount dw $-StringDATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX mov cx,count ;循环次数lea si,count-1 ;将最后一个字符G 的地址给 siL: mov ah,2mov dl,sidec siint 21hloop LMOV AH,4CHINT 21HCODES ENDSEND START1.2.asmDATAS SEGMENTx db x=$y db y=$z db x

5、+y=$ DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX mov ah,9 ;显示x=lea dx,xint 21hmov ah,1 ;输入 Xint 21hsub al,30hmov cl,al ;将 X 放在 CLmov ah,9 ;显示y=lea dx,yint 21hmov ah,1 ;输入 Yint 21hsub al,30hadd cl,al ;两数字相加mov ah,9 ;显示z=lea dx,zint 21h

6、mov ah,2 ;显示结果mov dl,cladd dl,30hint 21hMOV AH,4CHINT 21HCODES ENDSEND START1.3.asmDATAS SEGMENTarray db 128 dup(41h,43h) up dw 0down dw 0 DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXlea di,arraymov cx,256L:mov al,dicmp al,42hjl L1ja L

7、2L1:inc downjmp L3L2:inc upjmp L3 L3:inc diloop LMOV AH,4CHINT 21HCODES ENDSEND START题目名称 实验二 程序结构与简单程序设计题目关键字 简单程序设计题目录入时间 2013-4-1 22:45:55题目内容一 、 实 验 目 的1 掌 握 汇 编 语 言 源 程 序 结 构 。2 掌 握 汇 编 语 言 调 试 方 法 。二 、 实 验 要 求1.编 写 完 整 的 汇 编 语 言 程 序 :(1) 试 编 写 一 段 程 序 , 要 求 对 键 盘 输 入 的 小 写 字 母 用 大 写 字 母 显 示 出来

8、 。(2) 编 写 程 序 , 从 键 盘 接 收 一 个 小 写 字 母 , 然 后 找 出 它 的 前 导 字 母 和后 续 字 母 , 再 按 顺 序 显 示 这 三 个 字 符 。(3) 试 编 写 一 段 程 序 , 要 求 比 较 两 个 字 符 串 string1和 string2所 含 字 符 是 否 相 等 , 如 相 等 则 显 示 “MATCH”, 若 不 相 同 则 显 示“NO MATCH”.(4) 编 写 程 序 , 将 一 个 包 含 有 20个 数 据 的 数 组 M 分 成 2个 数 组 :正 数 数 组 P 和 负 数 数 组 N, 并 分 别 把 这 两

9、个 数 组 中 数 据 的 个 数 显 示 出 来 。2.在 DEBUG 下 查 看 程 序 执 行 的 过 程 , 以 及 变 量 值 的 变 化 。3.演 示 程 序 运 行 结 果 , 请 指 导 教 师 检 查 。三 、 思 考 对输入的非字母字符如何处理?2. 字 母 “a”和 “z”边 界 字 符 的 处 理 方 法 是 什 么 ?3. 显 示 结 果 为 多 位 数 的 时 候 如 何 输 出 ?四 、 提 交 内 容将 各 个 源 程 序 代 码 、 exe 文 件 , 思 考 题 的 WORD 文 档 压 缩 为 RAR 后 提交 到 作 业 系 统 。题目创建人题目注释2.

10、1.asmDATAS SEGMENTcrlf db 0ah,0dh,$DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXmov ah,1 ;输入数据会 ALint 21h push ax ;将 AX 存进栈里lea dx,crlf ;换行mov ah,9int 21hpop dx ;栈里数据放进 DX,即将原先 AX 放进 DXsub dl,20h ;小写变大写要减去 20hmov ah,2 ;输出int 21hMOV AH,4

11、CHINT 21HCODES ENDSEND START2.2.asmDATAS SEGMENTString db zabcdefghijklmnopqrstuvwxyzaDATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXlea di,Stringmov ah,1 ;输入字母int 21hL:inc di ;先 DI 自加 1,第一次就是a的地址,不是zcmp al,di ;直到找到字母和输入的相匹配jnz Ldec di ;推

12、前成为前端字母的地址 mov cx,3 ;循环次数 3L2: mov dl,diinc dimov ah,2int 21hloop L2MOV AH,4CHINT 21HCODES ENDSEND START2.3.asmDATAS SEGMENTString1 db this is a programcount1 dw $-String1String2 db this is a programcount2 dw $-String2answer1 db match,$answer2 db no match,$ DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES S

13、EGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXmov ax,count1 mov bx,count2cmp ax,bx ;比较两个字符串的长度,如果不等就是不匹配jnz nextmov cx,count1 ;字符串长度lea si,string1 lea di,string2L: mov al,sicmp al,di ;比较两个字符串的字符,如果不等就跳 jnz next inc siinc diloop Llea dx,answer1 ;能到这里说明都匹配mov ah,9int 21hjmp finall

14、y ;跳去 finally,避免顺序执行了 nextnext: ;显示不匹配lea dx,answer2mov ah,9int 21hfinally: MOV AH,4CHINT 21HCODES ENDSEND START2.4.asmDATAS SEGMENTM db 5 dup(-1,1,2,3)P dw 0N dw 0DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXlea si,Mmov cx,20 ;循环次数L:mo

15、v al,sicmp al,0 ;和 0 比较判断正负jl L1 jg L2L1:inc Njmp L3L2:inc Pjmp L3L3:inc siloop L mov ax,P ;输出 Pmov bl,10 ;设置除数 10div bl mov bh,ah ;将 ah(余数放在 bh 保留)mov dl,al ;将商显示add dl,30hmov ah,2int 21hmov dl,bh ;将余数显示add dl,30hmov ah,2int 21hmov ax,N ;输出 Nmov bl,10div blmov bh,ahmov dl,aladd dl,30hmov ah,2int 21hmov dl,bhadd dl,30hmov ah,2int 21hMOV AH,4CHINT 21HCODES ENDSEND START题目名称 实验三 分支程序设计题目关键字 分支结构题目录入时间 2013-4-14 20:14:57题目内容一 、 实 验 目 的1. 掌 握

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号