当前位置:
文档之家› 中南民族大学汇编语言实验报告
中南民族大学汇编语言实验报告
endFirstWhile:
INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start
; make entry point public
END
; end of source code
组 内 分 工 ( 可 选 )
实验截图
实 验 结 果 分 析 及 心 得 体 会
1
0
x 0, y 0 x 0, y 0 x, y异号
其中,从键盘输入 x,y,输出数据为 a。 输入输出时候都要求有提示信息。 3. 提示:这个给出两种方法如下: (1) 先输入 x 和 y,然后用嵌套的 IF 结构来分别判断并给 a 赋值。 (2) 分别为 x 和 y 设置一个标志变量,当值大于等于 0 时该变量等于 1,当值小于 0
算
char3 BYTE ?
法
BYTE cr, Lf
流
char1 BYTE ?
程
BYTE cr,lf
)
char2 BYTE ? BYTE cr,lf,0
char4 byte 5 dup (?)
.CODE _start:
output prompt1 input char4,3 mov al,char4 mov char1,al inc al mov char2,al
心得体会 在试验中,通过两个循环控制输出字符的行和列;程序用记事本打开,运行后只能输出部
分字符,想查看完整输出需用编辑器打开。
成
绩
评
教师签名:
定
年月日
年级 专业 实验 名称
实 验 目 的 或 要 求
2012 级
班号
计算机科学与技术
求 X 的阶乘
学号 姓名 实验 类型
设计型 综合型 创新型
题目:求 X 的阶乘值 2. 实验要求:输入一个整型数(不超过 10),求出其阶乘值后输出,求阶乘的算法用子 程序来实现。 3. 提示:可以用递归来实现,也可以用简单的循环来实现。
心得体会 通过本次试验,我掌握的汇编语言的基本操作,及通过 ASCII 码对字符进行操作。
成
绩
评
教师签名:
定
年月日
年级 专业 实验 名称
2012 级Βιβλιοθήκη 班号计算机科学与技术
计算函数值
1. 题目:计算给定函数值 2. 实验要求:编制程序,计算下面函数值
学号 姓名 实验 类型
设计型 综合型 创新型
1
a
.386 .MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h
; header file for input/output
cr
EQU 0dh ; carriage return character
Lf
EQU 0ah ; line feed
INCLUDE io.h
; header file for input/output
cr
EQU 0dh ; carriage return character
Lf
EQU 0ah ; line feed
.STACK 4096
; reserve 4096-byte stack
实
.DATA
验
prompt1 BYTE "This program will check a . from a string ,and output the position of the . ",cr,lf
2. 实验要求:程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和 后续字符,再按顺序显示这三个字符。在用户输入和显示字符之前都要有相应的提
示信息。
3. 提示:从 AL 寄存器得到它的 ASCII 码,它的前导字符和后续字符的 ASCII 码分别 比它的 ASCII 码少 1 或多 1。然后分别显示这三个字符。
并将其存放地址输出。
2. 实验要求:输入字符串,查找字符’.’所在的位置,并输出。
3. 提示:
(1)如果字符串中不存在’.’字符则应该输出“Not found”。 (2)如果字符串中存在多个’.’字符,则先试着输出第一个’.’的位置,然后设法输出
所有的’.’的位置。
.386
.MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
实验截图
实 验 结 果 分 析 及 心 得 体 会
心得体会 通过本试验,我进一步了解了子程序的设计与调用。
成
绩
评
教师签名:
定
年月日
年级 专业 实验 名称
实 验 目 的 或 要 求
2012 级
班号
计算机科学与技术
学号 姓名
查找字符串中某字符的位置
实验 类型
设计型 综合型 创新型
1. 题目:设有一字符串已存放在 STRBUF 为首址的数据区中,编一程序找出其中的′.′字符,
.STACK 40960
; reserve 4096-byte stack
实
.DATA
验
; reserve storage for data
原
prompt1 BYTE 'This program is to calculate a numbers factorial ',cr,lf
理
BYTE 'Please input a number that is from 0 to 10 ',cr,lf,0
.386 .MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h
; header file for input/output
cr
EQU 0dh ; carriage return character
Lf
EQU 0ah ; line feed
string byte 10 dup(?)
outstr1 byte cr,lf,"a="
实 avalue byte 6 dup(?),cr,lf,0
验
原 .CODE
理 _start:
(
output prompt1
算
input string,10
法
atoi string
流
mov bx,ax
程
)
output prompt2
算
row DWORD ?
法
ccf BYTE " ",0
流
crlf BYTE cr,Lf,0
程
char BYTE 1 DUP(?)
)
.CODE
; start of main program code
_start:
output promot
mov row,0
mov line,0
mov char,0Fh
doFirstWhile:
INVOKE ExitProcess, 0 ; exit with return code 0
FACT PROC NEAR32
push ebp
mov ebp,esp
mov eax ,[ebp+8]
mov ecx,eax
cmp eax,0
je L2
cmp eax,1
je L2
dec ecx
forcount : mul ecx
input string,10
atoi string
mov cx,0
cmp bx,0
jge L1
cmp ax,0
jl
L2
L1: cmp ax,0
jge L3
jmp L4
L2: mov cx,-1 jmp L4
L3: mov cx,1
L4: itoa avalue,cx output outstr1 INVOKE ExitProcess, 0 ; exit with return code 0
; read ASCII characters
dec al dec al mov char3,al output label1 INVOKE ExitProcess, 0 ; exit with return code 0
PUBLIC _start
END
组 内 分 工 ( 可 选 )
实验截图
实 验 结 果 分 析 及 心 得 体 会
时该变量等于 0。然后用这两个变量进行异或操作,结果赋值给 a。(这个 需要用到 xor 指令)。
实 验 目 的 或 要 求
.386 .MODEL FLAT
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
INCLUDE io.h
; header file for input/output
loop forcount
jmp L3
L2:
mov eax,1
L3:
dtoa value,eax
output result
pop ebp
ret 4
FACT ENDP
PUBLIC _start END
; make entry point public ; end of source code
组 内 分 工 ( 可 选 )
院 系: 计算机科学学院
专 业: 计算机科学与技术
年 级:
2012 级
课程名称:
汇编语言