信息管理学院学生实验报告
学生姓名 实验项目 实验地点 H-527 指导教师 一、实验综述 1、实验目的及要求 进一步熟悉DUBUG的使用 用DEBUG熟悉Intel 80X86指令一 2、实验仪器、设备或软件 计算机一台 DEBUG软件 同组人 无 用DEBUG熟悉Intel 80X86指令一 实验仪器台号 实验日期及节次 2011-4-6 √必修 □选修 实验内容 ? 1. 用完整段定义格式编写一段汇编语言程序,在屏幕上显示”hello world!”,要求 ? (1)写出程序的源代码 源代码: data segment string db 'hello world$',0ah,0dh data ends stack segment stack dw 100 dup(?) stack ends code segment 'code' assume cs:code, ss: stack, ds: data
1
start: mov ax,data
mov ds,ax mov dx, offset string mov ah,09h int 21h mov ah,4ch int 21h code ends end start ? (2)写出汇编连接的过程 ? (3)用DEBUG调试该程序。指出该EXE程序调入内存后,代码在代码段的起始位置;要显示的字符串在数据段的起始位置; 2
? (4)对照源程序中的指令与DEBUG反汇编后的指令,哪些指令发生的变化,写出源程序中指令及反汇编后对应的指令 源代码 反汇编后 mov ax,data mov ax,13f2 mov ds,ax mov ds,ax mov dx, offset string mov dx,0000h mov ah,09h mov ah,09h int 21h int 21 mov ah,4ch mov ah,4ch int 21h int 21h ? (5)用G命令执行该程序,给出结果 2. 判断一个一元二次方程有无实根,如果有实根,显示字符串“real root”,否则显示
3
“imaginary root ” ? 一元二次方法的系数a,b,c在数据段中定义并赋初值 ? 待显示的字符串在数据段中定义 输入数据a,b,c 定义待显示字符串字符串的利用指令求出b2 再求出4ac b2-4ac>=0 (Yes)Real root (No)Imaginary root 源代码: data segment a db 1h ;a,b,c在数据段中定义并赋初值 b db -7h c db 6h Y db 'real root$'0ah,0dh ;待显示的字符串在数据段中定义 N db 'imaginary root$'0ah,0dh data ends stack segment stack dw 100 dup(?) stack ends code segment 'code' assume cs:code, ss: stack, ds: data start:mov ax,data
4
mov ds,ax mov bl,b mov al,bl imul bl mov bl,al mov al,a imul c mov dl,4h imul dl sub bl,al cmp bl,0h jnl wang1 jl wang2 wang1:lea dx,Y mov ah,09h int 21h mov ah,4ch int 21h wang2:lea dx,N mov ah,09h int 21h mov ah,4ch int 21h code ends end start 5