全球旧事资料 分类
《微机原理与接口技术》
上机报告
学院机电学院
指导教师
学号
f实验一初级程序的编写与调试实验
一、实验目的
1、熟练掌握DEBUG的常用命令学会用DEBUG调试程序
2、深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出
3、掌握各种寻址方法以及简单指令的执行过程
二、实验内容
1、设堆栈指针SP2000HAX3000HBX5000H请编一程序段将AX的内容和BX的内容进行交换请用堆栈作为两寄存器交换内容的中间存储单元用DEBUG调试程序进行汇编与调试
程序
MOVAX3000
MOVBX5000
MOVSP2000
PUSHAX
PUSHBX
POPAX
POPBX
HLT
f2、设AX0002H编一个程序段将AX的内容乘10要求用移位的方法完成程序
MOVAX0002
MOVBXAX
MOVCL2
SHLAXCL
ADDAXBX
MOVCL1
SHLAXCL
HLT
f三、心得体会
从这个程序的编辑过程中我感受到了汇编语言的强大很直观的就可以读懂程序的含义但代码比较难记而且语法严谨我调试的过程中犯了一点错误修改的次数较多希望我以后可以不再犯同样的错误也是因为我练的比较的少还很生疏我以后一定多加练习把汇编学好。
实验二加法及判断程序的编写与调试
一、实验目的
1、熟练掌握编写汇编语言源程序的基本方法和基本框架
2、学会编写顺序结构分支结构和循环结构的汇编程序
f3、掌握程序中数据的产生与输入输出的方法
二、实验内容
1、用汇编语言编写一个加法程序
13259839
请用ASCII码的形式将加数与被加数存放在数据区DATA1和DATA2中并将相加结果显示输出
程序
DATASEGMENT
DATA1DB5231
DATA2DB9389
DATAENDS
STACKSEGMENTPARASTACKSTACK
DB200DUP
STACKENDS
CODESEGMENT
ASSUMECSCODEDSDATASSSTACK
STARTMOVAXDATA
MOVDSAX
MOVAXSTACK
MOVSSAX
LEASIDATA1
LEADIDATA2
MOVCX4
MOVAH0
NEXT
MOVALSI
ADCALDI
ADCALAH
MOVAH0
AAA
ADDAL30H
MOVDIAL
INCDI
INCSI
LOOPNEXT
MOVCX5
ADDAH30H
MOVDIAH
NEXT1MOVDLDI
MOVAH02
INT21H
fDECDI
LOOPNEXT1
MOVAH4CH
INT21H
CODEENDS
ENDSTART
2、假设有一组数据540310051请编写一程序判断每个数是否大于
0等于0还是小于0并输出其判断结果即

1当X0
Y
0当X0
1当X0
程序
DATASEGMENT
DATA1DB540310051
STRING1DBY1
STRING2DBY0
STRING3DBY1
DATAENDS
STACKSEGMENTPARASTACKSTACK
fDB200DUP
STACKENDS
CODESEGMENT
ASSUMECSCODEDSDATASSSTACKSTARTMOVAXDATA
MOVDSAX
MOVAXSTACK
MOVSSAX
LEASIDATA1
MOVCX6
NEXTMOVALSI
CMPAL0
JZNEXT1
JNSNEXT2
JSNEXT3
NEXT1MOVDXOFFSETSTRING2
MOVAH09H
INT21H
JMPNEXT4
NEXT2MOVDXOFFSETSTRING1
MOVAH09H
INT21H
JMPNEXT4
NEXT3MOVDXOFFSETSTRING3
MOVAH09H
INT21H
NEXT4INCSI
LOOPNEXT
MOVAH4CH
INT21H
CODEENDS
ENDSTART
f三、心得r
好听全球资料 返回顶部