汇编实验报告.docx

上传人:b****8 文档编号:10281712 上传时间:2023-02-09 格式:DOCX 页数:30 大小:19.26KB
下载 相关 举报
汇编实验报告.docx_第1页
第1页 / 共30页
汇编实验报告.docx_第2页
第2页 / 共30页
汇编实验报告.docx_第3页
第3页 / 共30页
汇编实验报告.docx_第4页
第4页 / 共30页
汇编实验报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

汇编实验报告.docx

《汇编实验报告.docx》由会员分享,可在线阅读,更多相关《汇编实验报告.docx(30页珍藏版)》请在冰豆网上搜索。

汇编实验报告.docx

汇编实验报告

实验三算术运算与代码转换程序设计

一、实验目的

1)掌握算术运算程序的设计方法。

2)掌握代码转换程序的设计方法。

3)进一步掌握各种程序结构。

4)熟练掌握和使用用DEBUG调试程序。

二、实验内容

1)编制两个多字节整数加法和减法程序,并将结果按十六进制形式显示在屏幕上。

2)编制程序实现二进制定点数与十进制数的ASCII码串之间转换,并将结果显示在屏幕上。

3)编写程序计算从键盘输入两个不超过四位的十进制数的和、差、积、商,并以十进制形式输出。

4)写程序把从键盘输入的四位十六进制数转换为压缩的BCD码,并显示输出。

5)编写一通用过程用来将十进制数(从键盘输入)转换为P(从键盘输入)进制数。

三、实验设备

PC机一台

四、实验步骤

1)按程序流程图编制实验程序。

2)输入源程序。

3)汇编、连接程序,执行程序,检查结果。

4)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。

5)用D命令检查执行结果。

六、源程序

实验一

DATA SEGMENT 

NUM1 DB 22H,33H,44H,55H,66H,77H 

NUM1L DB 6H 

NUM2 DB 22H,22H,22H,22H 

NUM2L DB 4H 

OUTCOME1 DB 10H DUP(0) 

OUTCOME2 DB 10H DUP(0) 

N DB 0H 

DATA ENDS 

STACK1 SEGMENT PARA STACK 

DW 20H DUP(0) 

STACK1 ENDS 

CODE SEGMENT 

ASSUME CS:

CODE,DS:

DATA,SS:

STACK1 

START:

MOV AX,DATA 

MOV DS,AX 

MOV CH,0 

MOV SI,OFFSET NUM1 

MOV DI,OFFSET NUM2 

MOV AH,NUM1L 

MOV AL,NUM2L 

CMP AH,AL 

JAE CHA 

XCHG SI,DI 

XCHG AH,AL 

CHA:

SUB AH,AL  

MOV CL,AL 

CLC 

MOV BX,OFFSET OUTCOME1

LOP1:

MOV AL,[DI] 

PUSH CX 

MOV CL,[SI]  

ADC CL,AL 

MOV [BX],CL 

INC BX 

INC SI 

INC DI 

POP CX 

LOOP LOP1 

MOV CL,AH 

JCXZ LOP3 

LOP2:

PUSH CX 

MOV CL, BYTE PTR [SI] 

ADC CL,0 

MOV [BX],CL 

POP CX 

INC BX  

INC SI  

LOOP LOP2 

LOP3:

MOV CH,0 

MOV SI,OFFSET NUM1 

MOV DI,OFFSET NUM2 

MOV AH,NUM1L 

MOV AL,NUM2L 

CMP AH,AL 

JAE CHA1 

XCHG SI,DI 

XCHG AH,AL 

CHA1:

SUB AH,AL  

MOV CL,AL 

CLC 

MOV BX,OFFSET OUTCOME2 

LOP11:

MOV AL,[DI] 

PUSH CX 

MOV CL,[SI]  

SBB CL,AL 

MOV [BX],CL

 INC BX 

INC SI 

INC DI 

POP CX 

LOOP LOP11 

MOV CL,AH

JCXZ LOP7 

LOP21:

PUSH CX 

MOV CL, BYTE PTR [SI] 

SBB CL,0 

MOV [BX],CL 

POP CX 

INC BX  

INC SI  

LOOP LOP21 

LOP7:

MOV DI,OFFSET OUTCOME1 

ADD DI,10H 

MOV CX,11H 

LOP4:

 MOV DL,[DI] 

DEC DI 

CMP N,0H 

JNE LOP5 

CMP DL,0H 

JE LOP9 

LOP5:

PUSH DX 

PUSH CX 

MOV CL,4H 

SHR DL,CL 

POP CX 

CMP DL,9H 

JBE LOP6 

ADD DL,7H 

LOP6:

ADD DL,30H 

MOV AH,2 

INT 21H 

MOV N,1H 

POP DX 

AND DX,0FH 

CMP DL,9H 

JBE LOP8 

ADD DL,7H 

LOP8:

ADD DL,30H 

MOV AH,2 

INT 21H 

MOV DL,'H' 

MOV AH,2 

INT 21H 

LOP9:

LOOP LOP4 

MOV N,0 

MOV DI,OFFSET OUTCOME2

ADD DI,10H 

MOV CX,11H 

LOP14:

 MOV DL,[DI] 

DEC DI 

CMP N,0H 

JNE LOP15 

CMP DL,0H 

JE LOP19 

LOP15:

PUSH DX 

PUSH CX 

MOV CL,4H 

SHR DL,CL 

POP CX 

CMP DL,9H 

JBE LOP16 

ADD DL,7H 

LOP16:

ADD DL,30H 

MOV AH,2 

INT 21H 

MOV N,1H 

POP DX 

AND DX,0FH 

CMP DL,9H 

JBE LOP18 

ADD DL,7H 

LOP18:

ADD DL,30H 

MOV AH,2 

INT 21H 

MOV DL,'H' 

MOV AH,2 

INT 21H 

LOP19:

LOOP LOP14 

MOV AH,4CH 

INT 21H 

CODE ENDS 

END START

实验2 

DATA SEGMENT 

TISHI1 DB 'Please enter the first number:

','$' 

TISHI2 DB 'Please enter the second number:

','$' 

JIA DB '+','$' 

JIAN DB '-','$' 

CHENG DB '*','$'

CHU DB '/','$' 

DENG DB '=','$' 

YU DB '......','$'

 A DB 10 

B DW 10 

C DW 10000 

F DW 0H 

NUM1 DW 0H 

NUM2 DW 0H 

N DB 0H 

N1 DB 4H 

DATA ENDS 

STACK1 SEGMENT STACK 

DW 30H DUP(0) 

STACK1 ENDS 

CODES SEGMENT 

ASSUME CS:

CODES,DS:

DATA 

START:

MOV AX,DATA  

MOV DS,AX 

 MOV DX,OFFSET TISHI1  

MOV AH,09H  

INT 21H 

LOOP2:

MOV AX,NUM1  

MUL B 

MOV BX,AX  

MOV AH,1  

INT 21H  

CMP AL,0DH  

JE LOP1  

MOV NUM1,BX 

 MOV AH,0  

SUB AL,30H  

ADD NUM1,AX  

JMP LOOP2 

 LOP1:

MOV DL,0AH          输出换行和回车

 MOV AH,2  

INT 21H  

MOV DL,0DH  

MOV AH,2  

INT 21H

MOV DX,OFFSET TISHI2  

MOV AH,09H  

INT 21H 

LOOP1:

MOV AX,NUM2

MUL B 

 MOV BX,AX  

MOV AH,1  

INT 21H  

CMP AL,0DH  

JE LOP3  

MOV NUM2,BX 

 MOV AH,0  

SUB AL,30H  

ADD NUM2,AX  

JMP LOOP1 

LOP3:

MOV DL,0AH          输出换行和回车  

MOV AH,2  

INT 21H  

MOV DL,0DH  

MOV AH,2  

INT 21H  

MOV N,0  

MOV DX,NUM1 

MOV F,DX 

 LOP6:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

  CMP AX,0H   

JE LOP7   

MOV F,AX   

JMP LOP6  

LOP7:

MOV CL,N  

 MOV CH,0 

 LOP16:

POP DX   

ADD DX,30H  

 MOV AH,2   

INT 21H   

LOOP LOP16  

MOV DX,NUM2 

MOV F,DX 

MOV N,0 

MOV DX,OFFSET JIA  

MOV AH,09H  INT 21H 

 LOOOP6:

MOV DX,0H   

MOV AX,F

DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOOOP7   

MOV F,AX   

JMP LOOOP6  

LOOOP7:

MOV CL,N   

MOV CH,0  

LOOOP16:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H 

LOOP LOOOP16 

 MOV DX,OFFSET DENG  

MOV AH,09H  

INT 21H   

MOV N,0 

LOOP3:

MOV AX,NUM1   

ADD AX,NUM2   

MOV F,AX  

LOOP4:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOOP5   

MOV F,AX   

JMP LOOP4  

LOOP5:

MOV CL,N   

MOV CH,0  

LOOP0:

POP DX   

ADD DX,30H   

MOV AH,2  

 INT 21H   

LOOP LOOP0 

MOV DL,0AH          输出换行和回车  

MOV AH,2  

INT 21H  

MOV DL,0DH  

MOV AH,2  

INT 21H  

MOV N,0

MOV DX,NUM1 

MOV F,DX 

LOP61:

MOV DX,0H   

MOV AX,F  

 DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOP71   

MOV F,AX   

JMP LOP61  

LOP71:

MOV CL,N   

MOV CH,0  

LOP161:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOP161  

MOV DX,NUM2 

MOV F,DX 

MOV N,0 

MOV DX,OFFSET JIAN  

MOV AH,09H  INT 21H 

LOOOP61:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOOOP71   

MOV F,AX   

JMP LOOOP61  

LOOOP71:

MOV CL,N   

MOV CH,0  

LOOOP161:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H 

LOOP LOOOP161 

 MOV DX,OFFSET DENG  

MOV AH,09H  

INT 21H   

MOV N,0

MOV N,0 

 MOV AX,NUM1  

SUB AX,NUM2   

MOV F,AX 

 AND AX,10000000B   

CMP AX,10000000B   

JNE LOOP6   

NEG F 

LOOP6:

MOV DX,0   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOOP7   

MOV F,AX   

JMP LOOP6  

LOOP7:

MOV CL,N   

MOV CH,0  

LOOP16:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOOP16 

MOV DL,0AH          输出换行和回车   

MOV AH,2   

INT 21H   

MOV DL,0DH   

MOV AH,2   

INT 21H 

MOV N,0 

 MOV DX,NUM1 

MOV F,DX 

LOP62:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

 CMP AX,0H   

JE LOP72   

MOV F,AX   

JMP LOP62 

 LOP72:

MOV CL,N   

MOV CH,0

LOP162:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOP162  

MOV DX,NUM2 

MOV F,DX 

MOV N,0 

MOV DX,OFFSET CHENG  

MOV AH,09H  

INT 21H 

 LOOOP62:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

CMP AX,0H   

JE LOOOP72   

MOV F,AX   

JMP LOOOP62  

LOOOP72:

MOV CL,N   

MOV CH,0  

LOOOP162:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H 

 LOOP LOOOP162 

 MOV DX,OFFSET DENG  

MOV AH,09H  

INT 21H   

MOV N,0   

MOV AX,NUM1   

MUL NUM2   

DIV C   

PUSH DX   

MOV F,AX   

MOV N,0  

LOOP8:

MOV DX,0   

MOV AX,F   

DIV B    

PUSH DX   

INC N 

 CMP AX,0H   

JE LOOP9 

MOV F,AX   

JMP LOOP8  

LOOP9:

MOV CL,N   

MOV CH,0 

 LOOP17:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOOP17   

MOV N,0   

POP F 

 LOOP10:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

 CMP AX,0H   

JE LOOP11   

MOV F,AX   

JMP LOOP10  

LOOP11:

MOV AL,N   

CMP AL,4H   

JE LOOP20   

MOV AL,4H   

SUB AL,N   

MOV CL,AL   

MOV CH,0 

LOOP19:

MOV DX,'0'   

MOV AH,2   

INT 21H   

LOOP LOOP19  

LOOP20:

MOV CL,N   

MOV CH,0  

LOOP18:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOOP18 

 MOV DL,0AH          输出换行和回车  

MOV AH,2  

INT 21H  

MOV DL,0DH  

MOV AH,2  

INT 21H

MOV N,0  

MOV DX,NUM1 

MOV F,DX 

LOP64:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

 CMP AX,0H   

JE LOP74   

MOV F,AX   

JMP LOP64  

LOP74:

MOV CL,N   

MOV CH,0  

LOP164:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOP164  

MOV DX,NUM2 

MOV F,DX 

MOV N,0 

MOV DX,OFFSET chu 

 MOV AH,09H  

INT 21H 

LOOOP64:

MOV DX,0H   

MOV AX,F   

DIV B   

PUSH DX  

 INC N 

 CMP AX,0H   

JE LOOOP74   

MOV F,AX   

JMP LOOOP64  

LOOOP74:

MOV CL,N   

MOV CH,0  

LOOOP164:

POP DX   

ADD DX,30H   

MOV AH,2  

 INT 21H 

  LOOP LOOOP164 

  MOV DX,OFFSET DENG  

MOV AH,09H  

INT 21H 

MOV N,0

MOV AX,NUM1   

MOV DX,0   

DIV NUM2   

PUSH DX   

MOV F,AX   

MOV N,0 

 LOOP15:

MOV DX,0   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

 CMP AX,0H   

JE LOOP12   

MOV F,AX   

JMP LOOP15  

LOOP12:

MOV CL,N   

MOV CH,0  

LOOP21:

POP DX   

ADD DX,30H   

MOV AH,2   

INT 21H   

LOOP LOOP21 

  MOV DX,OFFSET YU  

MOV AH,09H  

INT 21H   

POP F   

MOV N,0 

 LOOP13:

MOV DX,0   

MOV AX,F   

DIV B   

PUSH DX   

INC N 

  CMP AX,0H   

JE LOOP14   

MOV F,AX   

JMP LOOP13  

LOOP14:

MOV CL,N   

MOV CH,0H  

LOOP22:

POP DX  

 ADD DX,30H

MOV AH,2   

INT 21H  

 LOOP LOOP22 

MOV AH,4CH 

INT 21H 

CODES ENDS 

END START 

 

实验五输入输出程序设计

一、实验目的

1)掌握输入输出程序的编写方法。

2)熟悉系统功能调用的方法。

3)熟悉动画程序的编写方法。

二、实验内容

1)在CRT上每隔一秒连续显示字符0-9。

编程提示

为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。

为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。

为了保证输出是十进制,增量后用DAA调整指令。

由于输出为一位十进制数,用AND0FH指令屏蔽高4位。

2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。

3)编制在屏幕上画线的子程序,调用该子程序画一矩形。

4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。

5)创建一磁盘文件,保存从键盘输入的字符串。

6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。

7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。

8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。

三、实验设备

PC机一台

四、实验步骤

1) 按程序流程图编制实验程序。

2)输入源程序。

3)汇编、连接程序,执行程序,检查结果。

4)程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。

五、源程序

实验五EXAM5-1

STACKSEGMENTSTACK

DB1024DUP(0)

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,SS:

STACK

START:

MOVBL,0

LP:

MOVDL,20H

MOVAH,2

INT21H

MOVAL,BL

ADDAL,0

DAA

ANDAL,0FH

MOVBL,AL

PUSHBX

ORAL,30H

MOVDL,AL

MOVAH,2

INT21H

MOVBX,3E8H

LP2:

MOVCX,176H;延时1ms

LP1:

PUSHF

POPF

LOOPLP1

DECBX

JNZLP2

POPBX

INCBL

JMPLP

CODEENDS

ENDSTART

执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格:

0   123456789……

 

 

实验五EXAM5-2

STACKSEGMENTSTACK

DB1024DUP(0)

STACKENDS

DATASEGMENT

BUFFDB6,7DUP(?

),‘$’

DATAENDS

INPUTMACROBUFE

MOVDX,OFFSETBUFE

MOVAH,0AH

INT21H

ENDM

PUTCHARMACROCHAR

MOVDL,CHAR

MOVAH,02H

INT21H

ENDM

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

INPUTBUFF;读取字符串➝BUFF

PUTCHAR0DH

PUTCHAR0AH;光标另起一行

MOVCX,0003H

NEXT:

PUTCHAR2AH

LOOPNEXT

MOVCL,BUFF+1

SUBCH,CH

MOVBX,OFFSETBUFF+2

BEGIN:

MOVAL,[BX]

PUTC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1