汇编语言实验报告
燕山大学实验报告
实验一 汇编语言的源程序的输入
一、 实验目的
1. 通过实验了解和熟悉微机系统的配置
2. 学习在DEBUG状态下输入汇编源程序的方法 3. 初步掌握调试(在DEBUG状态下)的过程 二、 实验原理
1. 本实验在DEBUG状态下输入汇编源程序,并且用DEBUG命令进行调试,用单步
跟踪的方法试验指令的功能; 2. 以下是给定的参考程序,并在实验时每条指令的“;”等号右边按要求填写指令的
分析结果。
三、 实验步骤
1. 开机后进入DOS系统
2. 用DEBUG的REGISTER命令检查所有寄存器内容,并作记录 R[寄存器名] 3. 用DEBUG的ASSEMBLE命令输入汇编源程序 A[内存地址] 4. 用DEBUG的UNASSEMBLE命令反汇编 U[起始地址][终止地址] 5. 用DEBUG的TRACE命令单步跟踪程序 T[起始地址][终止地址] 6. 用DEBUG的DUMP命令显示存贮器单元的内容 四、 参考程序及结果
MOV AX,2000 MOV DS,AX
NOT AX XOR AX,AX DEC AX INC AX MOV BX,2030
;AL=00 ;DS=2000 ;AX=DFFF ;AX=0000 ;AX=FFFF ;AX=0000 ;BH=20
MOV SI,BX ;SI=2030 MOV [SI],BL ;[2030H]=30 MOV WORD PTR[SI],10F ;[2030H]=0F [2030H]=01 MOV DI,SI ;DI=2030 MOV [DI+50],BH ;[DI+50]=20 MOV BH,[SI] ;BH=0F MOV BL,[DI+50] ;BL=20 MOV SP,5000 PUSH AX PUSH BX POP AX POPF NEG BX STD STI CLD
;AX=0 [SS:4FFEH]=00H [SS:4FFFH]=00H ;BX=0F20 [SS:4FFCH]=20H [SS:4FFDH]=0FH ;AX=0F20 ;F=00000000 ;BX=F0E0
;BX=0F20 ;F=01010001 ;F=01110001 ;F=00110001
XCHG BX,AX
燕山大学实验报告
CLI ;F=00010001
;DI=4081 F=00000010 ;SP=9081 F=10010010 ;AX=05E0 F=00000001 ;AX=F6C0 BX=0F20 ;AH=EC ;AX=D981 ;BH=07 ;BL=90
ADC DI,2050 ADC SP,DI ADC AX,1500 SUB AX,BX SHL AH,1 RCL AX,1 SHR BX,1 RCR BL,1 MOV CL,4 MOV DX,80F0 ROL DX,CL INT 20
;DX=0F08 CL=04 ;CS=00A7 IP=1072
实验二 数据的建立与传送程序
一、 实验目的
1. 学习DEBUG命令
2. 验证指令的功能
二、 实验原理
在DEBUG状态下,输入程序,用G命令进行连续方式执行程序,用DUMP命令查看建立的数据块内容 三、 参考程序及结果
1. 在内存1000单元开始,建立00H~0FH~00H 31个数,要求00H~0FH数据逐渐增
大,0FH~00H逐渐减小,程序从内存CS:0100H地址开始输入
MOV AX ,100H MOV DS ,AX MOV SI,0 MOV CL ,0FH XOR AX,AX
PPE1: MOV [SI] ;AL INC SI ;
INC AL DEC CL JNZ PPE1 MOV CX,10H
PPE2:MOV[SI],AL
INC SI DEC AL LOOP PPE2
燕山大学实验报告
INT 20H 数据块的内容
1000:0000:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 1000:0100:0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
2. 把上一程序的执行结果分几种方式传送到以下指定区域
(a) 该程序从内存CS:0150H开始输入,把数据块传送到15050H开始的存储区域
中
MOV AX,1000H MOV DS,AX MOV SI,0
MOV DI,5050H
MOV CX,1FH
PPEA: MOV AL,[SI]
MOV [DI],AL INC SI INC DI
LOOP PPEA INT 20H
结果:
1000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
1000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
(b) 用串传送指令MOVSB,把数据块传送到15150H开始的区域,该程序从内存
CS:0200H开始输入
MOV AX,100H MOV DS,AX MOV ES,AX MOV SI,0
MOV DI,5150H MOV CS,1FH
CLD
PPEB: MOVSB LOOP PPEB INT 20H 结果:
1000:5150 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
1000:5160 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 (C)用重复串操作指令”REP MOVSB”把数据传送到15250H开始的区域,该程序从CS:250H地址开始输入
MOV AX,1000H MOV DS,AX MOV ES,AX MOV SI,0
MOV DI,5250H
燕山大学实验报告
MOV CX,1FH CLD REPZ MOVSB INT 20H
结果:
1000:5250 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
1000:5260 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
(c) 用串操作的减量工作方式,把数据传送到25050H开始的区域,该程序从
CS:0300H开始输入 MOV AX,1000H MOV DS,AX ADD AX,AX MOV ES,AX MOV SI,1EH MOV DI,506EH MOV CX,1FH STD
REP MOVSB INT 20H
结果:
2000:5050 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 2000:5060 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00
实验四 统计学生成绩程序
一、 实验目的
进一步掌握分支程序和循环程序的编写方法 二、 实验原理
设有10个学生的成绩分别为56,69,84,82,73,88,99,63,100和80分。试编制程序分别统
计低于60分,60~69分,70~79分,80~89分,90~99分及100分的人数存放在S5,S6,S7,S8,S9及S10单元中 三、 参考程序
;PROGRAM TITLE GOES HERE__RESULT
******************************** ;
datarea segment ;define data segment grade dw 56,69,84,82,73,88,99,63,100,80 S5 dw 0 S6 dw 0 S7 dw 0 S8 dw 0 S9 dw 0
燕山大学实验报告
S10 dw 0
datarea ends
**************************** ;
program segment ;define code segment ;_____________________________ main proc far ;main part of program assume cs:program ds ;datarea ;set up stack for return
push ds ;save old data segment sub ax ax ;put zero in ax push ax ;save it on stack
;set DS regisiter to current data segment mov ax,datarea ;datarea segment addr mov ds,ax ;into DS register ;main part of program goes hzre
mov S5,0 ;initialize counter mov S6,0 mov S7,0 mov S8,0 mov S9,0
mov S10,0 mov cx,10 ;initialize l00p count value mov bx,offset grade initialize first addr compare:
mov ax,[bx] ;get result cmp ax,60 ;<60? jl five
cmp ax,70 ;<70? jl six
cmp ax,80 :<80? jl seven
cmp ax,90 :<90? jl eight jne nine inc S10
jmp short change_addr nine:inc S9
jmp short change_addr eight:inc S8
jmp short change_addr seven:inc S7
jmp short change_addr six:inc S6
燕山大学实验报告
jmp short change_addr five:inc S5 change_addr: add bx,2
loop compare
填加程序 MOV DX,S5 ADD DX,30H MOV AH,02 INT 21H MOV DX,S6 ADD DX,30H MOV AH,02 INT 21H MOV DX,S7 ADD DX,30H MOV AH,02 INT 21H MOV DX,S8 ADD DX,30H MOV AH,02 INT 21H MOV DX,S9 ADD DX,30H MOV AH,02 INT 21H MOV DX,S10 MOV DX,30H MOV AH,02 INT 21H MAIN ENDS PROGRAM ENDS END START 五
1.读懂所给程序
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




