中南民族大学汇编语言实验报告

  • 格式:doc
  • 大小:262.00 KB
  • 文档页数:17

院 系: 计算机科学学院 专 业: 计算机科学与技术 年 级: 2012级 课程名称: 汇编语言 学 号: 姓 名: 指导教师: 雷建云

2014 年 6 月 26 日 年级 2012级 班号 学号 专业 计算机科学与技术 姓名 实验名称 字符显示 实验 类型 设计型 综合型 创新型

实 验 目 的 或 要 求 1. 题目:输入一个字符,找出它的前导字符和后续字符,并按顺序显示这三个字符。 2. 实验要求:程序从键盘接收用户输入的一个字符后,然后分别找出它的前导字符和后续字符,再按顺序显示这三个字符。在用户输入和显示字符之前都要有相应的提示信息。 3. 提示:从AL寄存器得到它的ASCII码,它的前导字符和后续字符的ASCII码分别比它的ASCII码少1或多1。然后分别显示这三个字符。

实 验 原 理 ( 算 法 流 程 )

.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

.STACK 4096 ; reserve 4096-byte stack .DATA prompt1 BYTE "This program will output three character ",cr,lf BYTE "Enter a character : ", 0

label1 BYTE cr, Lf, "The three character is ",cr,lf 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 ; read ASCII characters mov al,char4 mov char1,al inc al mov char2,al dec al dec al mov char3,al output label1 INVOKE ExitProcess, 0 ; exit with return code 0

PUBLIC _start END

组 内 分 工 ( 可 选 )

实 验 结 果 分 析 及 心 得 体 会

实验截图

心得体会 通过本次试验,我掌握的汇编语言的基本操作,及通过ASCII码对字符进行操作。

成 绩 评 定 教师签名: 年 月 日 年级 2012级 班号 学号 专业 计算机科学与技术 姓名 实验名称 计算函数值 实验 类型 设计型 综合型 创新型

实 验 目 的 或 要 求

1. 题目:计算给定函数值 2. 实验要求:编制程序,计算下面函数值





异号yxyxyxa, 0 0,0 1 0,0 1

其中,从键盘输入x,y,输出数据为a。 输入输出时候都要求有提示信息。 3. 提示:这个给出两种方法如下: (1) 先输入x和y,然后用嵌套的IF结构来分别判断并给a赋值。 (2) 分别为x和y设置一个标志变量,当值大于等于0时该变量等于1,当值小于0时该变量等于0。然后用这两个变量进行异或操作,结果赋值给a。(这个需要用到xor 指令)。 实 验 原 理 ( 算 法 流 程 )

.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

.STACK 4096 ; reserve 4096-byte stack .DATA prompt1 byte "please input x:",0 prompt2 byte "please input y:",0 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 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 PUBLIC _start END

组 内 分 工 ( 可 选 )

实 验 结 果 分 析 及 心 得 体 会

实验截图

心得体会 在试验中,根据提示输入两个整数,通过与0比较进行跳转,最后赋值输出。

成 绩 评 定 教师签名: 年 月 日 年级 2012级 班号 学号 专业 计算机科学与技术 姓名 实验名称 用表格形式显示字符 实验 类型 设计型 综合型 创新型

实 验 目 的 或 要 求

1. 题目:用表格形式显示ASCII字符 2. 实验要求:按15行×16列的表格形式显示ASCII码为10H-100H的所有字符,即以行为主的顺序及ASCII码递增的次序依次显示对应的字符。每16个字符为一行,每行中的相邻两个字符之间用空白符或空格符(ASCII码为0或20H)隔开。

实 验 原 理 ( 算 法 流 程 )

.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

.STACK 4096 ; reserve 4096-byte stack .DATA ; reserve storage for data promot BYTE "The program is to print Ascii from 10h to 100h",cr,Lf,0 line DWORD ? 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: inc line cmp line,15 jg endFirstWhile mov row,0 doSecondWhile: inc row cmp row,16 jg endSecondWhile add char,1 output char output ccf jmp doSecondWhile endSecondWhile: output crlf jmp doFirstWhile endFirstWhile:

INVOKE ExitProcess, 0 ; exit with return code 0 PUBLIC _start ; make entry point public END ; end of source code