资源预览内容
第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
第9页 / 共54页
第10页 / 共54页
亲,该文档总共54页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
题目名称 实验一 汇编语言程序结构题目关键字 源程序结构 debug题目录入时间 2013-3-13 22:45:26题目内容一 、 实 验 目 的 1 掌 握 汇 编 语 言 程 序 上 机 过 程 。2 掌 握 汇 编 语 言 结 构 。3 了 解 汇 编 程 序 、 连 接 程 序 、 DOS 系 统 装 入 和 返 回 功 能 。4 掌 握 用 DEBUG 调 试 汇 编 语 言 程 序 的 方 法 二 、 实 验 要 求1. 编 写 完 整 的 汇 编 语 言 程 序 :(1)逆 序 输 出 字 符 串 “BASED ADDRESSING”。(2)从 键 盘 上 输 入 2个 一 位 的 正 数 , 求 出 它 们 的 和 ( 假 设 和 不 超 过 1 位 ) 。(3)试 编 写 一 段 程 序 , 要 求 在 长 度 为 100H 字 节 的 数 组 中 , 找 出 大 于42H 的 无 符 号 数 的 个 数 并 存 入 字 单 元 UP 中 ; 找 出 小 于 42H 的 无 符 号数 的 个 数 并 存 入 字 单 元 DOWN 中 。2.在 DEBUG 下 查 看 程 序 执 行 的 过 程 , 以 及 变 量 值 的 变 化 。3.演 示 程 序 运 行 结 果 , 请 指 导 教 师 检 查 。 三 、 思 考1.汇编语言程序中语句 END后的标号作用是什么?2.采 用 标 准 序 结 构 编 制 源 程 序 , 用 ret 结 束 程 序 运 行 返 回 操 作 系 统时 , 可 否 将 语 句 main proc far 中 的 far 属 性 去 掉 , 为 什 么 ?3.一 个 段 的 大 小 为 多 少 ? 一 定 是 64KB 吗 ? 如 何 在 DEBUG 下 查 看 程序 在 内 存 的 存 放 情 况 ?四 、 提 交 内 容将 各 个 源 程 序 代 码 、 exe 文 件 压 缩 为 RAR 后 提 交 到 作 业 系 统 。题目创建人题目注释1.1.asmDATAS SEGMENTString db BASED ADDRESSINGcount 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+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 21hmov 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 L2L1: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) 试 编 写 一 段 程 序 , 要 求 对 键 盘 输 入 的 小 写 字 母 用 大 写 字 母 显 示 出来 。(2) 编 写 程 序 , 从 键 盘 接 收 一 个 小 写 字 母 , 然 后 找 出 它 的 前 导 字 母 和后 续 字 母 , 再 按 顺 序 显 示 这 三 个 字 符 。(3) 试 编 写 一 段 程 序 , 要 求 比 较 两 个 字 符 串 string1和 string2所 含 字 符 是 否 相 等 , 如 相 等 则 显 示 “MATCH”, 若 不 相 同 则 显 示“NO MATCH”.(4) 编 写 程 序 , 将 一 个 包 含 有 20个 数 据 的 数 组 M 分 成 2个 数 组 :正 数 数 组 P 和 负 数 数 组 N, 并 分 别 把 这 两 个 数 组 中 数 据 的 个 数 显 示 出 来 。2.在 DEBUG 下 查 看 程 序 执 行 的 过 程 , 以 及 变 量 值 的 变 化 。3.演 示 程 序 运 行 结 果 , 请 指 导 教 师 检 查 。三 、 思 考 对输入的非字母字符如何处理?2. 字 母 “a”和 “z”边 界 字 符 的 处 理 方 法 是 什 么 ?3. 显 示 结 果 为 多 位 数 的 时 候 如 何 输 出 ?四 、 提 交 内 容将 各 个 源 程 序 代 码 、 exe 文 件 , 思 考 题 的 WORD 文 档 压 缩 为 RAR 后 提交 到 作 业 系 统 。题目创建人题目注释2.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,4CHINT 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 ;推前成为前端字母的地址 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 SEGMENTASSUME 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 finally ;跳去 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:mov 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. 掌 握
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号