大学汇编实验报告答案(软件)
目 录
实验一 DEBUG的启动及其基本命令的使用
实验二 实验三 实验四 实验五 实验六 实验七 实验八 实验九
内存操作数及寻址方法
汇编语言程序的调试与运行
查表程序设计
系统功能调用
分支程序设计
循环程序设计
子程序设计
综合程序设计
实验一 DEBUG的启动及其基本命令的使用
源程序:(指导书中给出)
DATA SEGMENT
STRING1 DB 'Move the cursor backward' STRING2 DB 'Move the cursor backward' MESS1 DB 'Match.',13,10,'$' MESS2 DB 'No Match.',13,10,'$' DATA ENDS
STACK SEGMENT STACK DB 40 DUP (?) STACK ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DATA,ES:DATA,SS:STACK
MAIN PROC FAR START: PUSH DS XOR AX,AX PUSH AX
MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX
LEA SI,STRING1 LEA DI,STRING2 CLD
MOV CX,25 REPZ CMPSB JZ MATCH
LEA DX,MESS2 JMP SHORT DISP MATCH: LEA DX,MESS1 DISP: MOV AH,09h INT 21H RET
MAIN ENDP PROGNAM ENDS END START
运行结果:
用DEBUG调试将输出字符串改为‘No Match’
用E指令修改“backward”为“forward”
再次用d命令查看修改结果。
用g命令运行程序
实验二 内存操作数及寻址方法
1、(1)程序说明:设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。请用堆栈作为两寄存器交换内容的中间存储单元,用字处理程序编辑程序。
(2)调试说明:对SP的地址分配不到2000,计算机自动分配为0000,此时我就人为的把堆栈的首地址定义为2000。 (3)写出源程序清单和执行结果:
源程序:
STACK SEGMENT STACK DW 100 DUP(0) STACK ENDS CODE SEGMENT
ASSUME SS:STACK,CS:CODE START:MOV AX,3000H MOV BX,5000H MOV SP,2000H
PUSH AX ;将AX中的内容压栈 MOV AX,BX ;BX中的内容给AX POP BX
MOV AH,4CH INT 21H CODE ENDS
END START
用debug调试结果:
2、程序说明:用masm和link 对以下程序进行汇编和连接,调试程序在DEBUG调试程序状态下进行。用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。
源程序:
DATA SEGMENT ORG 0300H
A DB 12H,23H,34H,45H,56H,67H,78H,89H,9AH DATA ENDS
PROGNAM SEGMENT
ASSUME CS:PROGNAM,DS:DATA START: MOV AX,DATA MOV DS,AX
MOV BX,0300H
MOV AX,0300H ;立即数寻址
MOV AX,[0300H] ;存储器寻址方式中的直接寻址方式 MOV AX,[BX] ;寄存器间接寻址 MOV SI,2
MOV AX,0001[BX] ;基址寻址 MOV AX,[BX][SI] ;基址加变址
MOV AX,0001[BX][SI] ;带偏移量的基址加变址 MOV AH,4CH INT 21H PROGNAM ENDS END START
用debug调试结果:
实验五 系统功能调用
1、程序说明:试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
2、调试说明:在DEBUG显示字符窜时,曾显示乱码,未能按预期显示,经检查发现在编译字符窜时出现错误,因为调用21H中断输出一串字符要求用'$'结尾,我没用上‘$’。还有,键盘输入字符是被存放在AX内,当要多次使用AX时应该把输入内容另存一地址 3、源程序清单和执行结果:
源程序:
DATA SEGMENT DB ? DATA ENDS
STACK SEGMENT STACK DB 5 DUP(0) STACK ENDS CODE SEGMENT
ASSUME DS:DATA, SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX
MOV AH,01H ;从输入端读取字符 INT 21H
SUB AL,20H ;小写转换成大写 MOV DL,AL
MOV AH,02H ;输出字符到终端 INT 21H
MOV AH,4CH INT 21H CODE ENDS END START
运行结果:
实验六 分支程序设计
1、实验说明:假设有一组数据:5,-4,0,3,100,-51,请编一程序,判断:每个数大于0,等于0,还是小于0;并输出其判断结果。 即:
1 当x>0 y= 0 当x=0 -1 当x<0
2、调试说明:在最初的程序中,我使用了MOV BX,XX等语句,后来发现像这样的语句在实际使用中有些累赘,于是我便做了修改,简化了汇编语言。其次,在调试中,发现符号无法显示的问题,于是采用两次显示符号的方法,较理想的解决了负号问题。 3、程序框图: 开始
DS 段地址
SI 数据串偏址
CX 数据串长度
取数据并与 0 比较大小 小于
大于等于 等于 是否为0
显示1
YES INC SI 循环判断
NO
返回DOS
显示-1 显示0 4、源程序清单和执行结果:
源程序:
DATA SEGMENT
XX DB 05H,0FCH,00H,03H,64H,0CDH Y1 DB 'Y=1',0DH,0AH,'$' Y2 DB 'Y=0',0DH,0AH,'$' Y3 DB 'Y=-1',0DH,0AH,'$' DATA ENDS
STACK SEGMENT STACK DB 10 DUP(0) STACK ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK,CS:CODE START: MOV AX,DATA MOV DS,AX LEA SI,XX MOV AX,0 MOV CX,6 L1: MOV AL,[SI]
CMP AL,0 ;与0比较 JG BIGER JE EQUAL
MOV DX,OFFSET Y3 MOV AH,09H INT 21H
JMP OUTPUT
BIGER: MOV DX,OFFSET Y1 MOV AH,09H INT 21H
JMP OUTPUT
EQUAL: MOV DX,OFFSET Y2 MOV AH,09H INT 21H
OUTPUT:INC SI LOOP L1 MOV AH,4CH INT 21H CODE ENDS
END START
运行结果:
…… 此处隐藏:3456字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




