logo资料库

汇编实验报告汇总(共6个常用实验报告).docx

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
学号: 20155104008 实验报告 学 院: 计算机与信息技术学院 专 业: 软件工程 年 级: 姓 名: 2015 级 魏强 课程名称: 汇编语言 实验题目 实验一 熟悉指令系统及 DEBUG 的使用
实验目的 熟悉指令系统,掌握常用指令的用法;通过实验加深对各种寻址 方式的理解;能熟练使用 DEBUG 中的命令对指令进行反汇编,观 察并了解机器代码。 1.掌握 DEBUG 的操作命令 实验内容 2.熟悉指令的书写格式、功能。 无 流程图 (1) mov ax,4e20h add ax,1416h mov bx,2000h add ax,bx mov bx,ax add ax,bx mov ax,001ah mov bx,0026h add al,bl add ah,bl add bh,al mov ah,0 add al,bl add al,9ch (2)mov ax,1 add ax,ax jmp 2000:0003 第一个程序段写入 debug 中,逐条 t 命令单步执行 源程序 调试过程
第二个程序段使用 t 命令执行 16 次 t 命令 2 的 8 次方为 100h 实验结果
实验题目 实验二 掌握编写完整的汇编语言源程序的方法 实验目的 实验内容 1.熟悉汇编语言源程序的编辑、汇编、连接、运行的上机全过程, 掌握汇编语言源程序的格式。 2.掌握使用 DOS 功能调用输入、输出字符和返回 DOS 的方法。 1、将下面代码保存为 t1.asm 文件,将其生成可执行文件 t1.exe。 2、用 debug 跟踪他 t1.exe 的执行过程,写出每一步执行后,相关 寄存器的内容和栈顶的内容。 3、键盘接收一个字符,屏幕端显示一个字符的代码段 无 流程图 DATAS SEGMENT db'welcome to masm','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS 源程序 START: MOV AX,DATAS MOV DS,AX mov ah,01h int 21h mov ah,2 mov bh,0 mov dh,5 mov dl,12 int 10h mov bx,datas mov ds,bx mov dx,0
mov ah,9 int 21h;此处输入代码段代码 MOV AH,4CH INT 21H CODES ENDS END START 调试过程 点击保存按钮后运行,然后输入一个字符显示 welcome to masm 实验结果
实验题目 实验三 循环程序设计 实验目的 对表格中的记录进行全面更新 编程,将data段中的数据按格式写入到table段中,并计算 21 年 的人均收入(去整),结果按照下面的格式保存到table段中。 实验内容 无 流程图 data segment db '1975','1976','1977','1978','1979','1980','1981','1982', '1983' db '1984','1985','1986','1987','1988','1989','1990','1991', '1992' db '1993','1994','1995' ;年份(4字节) dd 源程序 16,22,382,1356,2390,8000,1600,24486,50065,97479,140417,1 97514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,464 9000,5973000 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037, 5635,8226 dw 11542,11430,15257,17800 ;员工人数(2字节) data ends
table segment db 21 dup ('year summ ne ?? ') table ends assume cs:code,ds:data,es:table code segment start : mov ax,data mov ds,ax mov ax,table mov es,ax mov bx,0 mov di,0 mov si,0 mov cx,21 s: ;读取年份放到table mov ax,ds:[di] mov es:[bx],ax mov ax,ds:[di+2] mov es:[bx+2],ax ;读取员工数放到table mov ax,ds:[00a8h+si] mov es:[bx+000ah],ax ;读取收入放到table mov ax,ds:[di+0054h] mov es:[bx+5],ax mov dx,ds:[di+0054h+2] ;高位字 mov es:[bx+5+2],dx div word ptr ds:[00a8h+si] mov es:[bx+000dh],ax add di,4h add si,2h add bx,10h loop s mov ax,4c00h int 21h code ends ;年份,收入下一行 ;员工下一行 ;表格下一行 end start
调试过程 实验结果
分享到:
收藏