8086汇编语言学习实验3个程序及运行结果
来源:互联网 发布:淘宝标品系统 编辑:程序博客网 时间:2024/05/02 00:23
刚开始学8086,汇编语言似乎比起C语言难很多,往往一个实验程序就让人摸不着头脑,下面是我修改的程序,大家参考一下
1·将一个或两字节数相加,并显示累加和
(设N1=1122H,N2=3344H,N3=5566H,计算并以二进制形式显示这三个熟的累加和)
2·使S=1+2*3+3*4+…+n*(n+1),直到n*(n+1)项大于200为止
3·设置一个数据段,定义存放20个16位整数的表,求该表中正数,负数,0的个数,分别存放到Negnum,Posnum,Zeronum变量中。
程序清单如下:
1:
DATA SEGMENT
NUM1 DW 1122H ;N1
NUM2 DW 3344H ;N2
NUM3 DW 5566H ;N3
DATA ENDS
STACK SEGMENT STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
NUM1 DW 1122H ;N1
NUM2 DW 3344H ;N2
NUM3 DW 5566H ;N3
DATA ENDS
STACK SEGMENT STACK 'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
BEG: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET NUM1
CALL COMPUTER
DISP: CALL DISPLAY
EXIT: MOV AH,4CH
INT 21H
COMPUTER PROC
MOV BX,0
ADD BX,[SI+0]
ADD BX,[SI+2]
ADD BX,[SI+4]
RET
COMPUTER ENDP
DISPLAY PROC
PUSH AX
PUSH CX
PUSH DX
MOV CX,16;
LAST:MOV DL,'0';
RCL BX,1
JNC NEXT;
MOV DL,'1';
NEXT: MOV AH,2
INT 21H
LOOP LAST
POP DX
POP CX
POP AX
RET;
DISPLAY ENDP
CODE ENDS
END BEG
***********************************************************************************
ASSUME CS:CODE,DS:DATA,SS:STACK
BEG: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET NUM1
CALL COMPUTER
DISP: CALL DISPLAY
EXIT: MOV AH,4CH
INT 21H
COMPUTER PROC
MOV BX,0
ADD BX,[SI+0]
ADD BX,[SI+2]
ADD BX,[SI+4]
RET
COMPUTER ENDP
DISPLAY PROC
PUSH AX
PUSH CX
PUSH DX
MOV CX,16;
LAST:MOV DL,'0';
RCL BX,1
JNC NEXT;
MOV DL,'1';
NEXT: MOV AH,2
INT 21H
LOOP LAST
POP DX
POP CX
POP AX
RET;
DISPLAY ENDP
CODE ENDS
END BEG
***********************************************************************************
2:STACK SEGMENT STACK
DB 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,0001H
MOV BL,02H
A1: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX,00C8H
JNA A1
INT 03H
CODE ENDS
END START
DB 32 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,0001H
MOV BL,02H
A1: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX,00C8H
JNA A1
INT 03H
CODE ENDS
END START
********************************************************************************
-U
0B6A:0000 BA0100 MOV DX,0001
0B6A:0003 B302 MOV BL,02
0B6A:0005 8AC3 MOV AL,BL
0B6A:0007 FEC3 INC BL
0B6A:0009 F6E3 MUL BL
0B6A:000B 03D0 ADD DX,AX
0B6A:000D 3DC800 CMP AX,00C8
0B6A:0010 76F3 JBE 0005
0B6A:0012 CC INT 3
0B6A:0013 83C406 ADD SP,+06
0B6A:0016 B8CD05 MOV AX,05CD
0B6A:0019 50 PUSH AX
0B6A:001A 8D8600FF LEA AX,[BP+FF00]
0B6A:001E 50 PUSH AX
0B6A:001F E8CA0C CALL 0CEC
-G=0B6A:0000
0B6A:0000 BA0100 MOV DX,0001
0B6A:0003 B302 MOV BL,02
0B6A:0005 8AC3 MOV AL,BL
0B6A:0007 FEC3 INC BL
0B6A:0009 F6E3 MUL BL
0B6A:000B 03D0 ADD DX,AX
0B6A:000D 3DC800 CMP AX,00C8
0B6A:0010 76F3 JBE 0005
0B6A:0012 CC INT 3
0B6A:0013 83C406 ADD SP,+06
0B6A:0016 B8CD05 MOV AX,05CD
0B6A:0019 50 PUSH AX
0B6A:001A 8D8600FF LEA AX,[BP+FF00]
0B6A:001E 50 PUSH AX
0B6A:001F E8CA0C CALL 0CEC
-G=0B6A:0000
AX=00D2 BX=000F CX=0033 DX=045F SP=0020 BP=0000 SI=0000 DI=0000
DS=0B58 ES=0B58 SS=0B68 CS=0B6A IP=0012 NV UP EI PL NZ AC PE NC
0B6A:0012 CC INT 3
DS=0B58 ES=0B58 SS=0B68 CS=0B6A IP=0012 NV UP EI PL NZ AC PE NC
0B6A:0012 CC INT 3
****************************************************************************************
3:
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
TABLE DW 20
DW -10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9
NEGNUM DW 0
POSNUM DW 0
ZERONUM DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV CX,DATA
MOV DS,CX
MOV DI,OFFSET TABLE
XOR BL,BL
XOR DL,DL
XOR AL,AL
MOV CX,20
JCXZ DONE
LEA DI,TABLE+2
CMPNUM: CMP WORD PTR[DI],0
JGE A1
INC BL
JMP TONEXT
A1: JE A2
INC AL
JMP TONEXT
A2: INC DL
TONEXT: INC DI
INC DI
LOOP CMPNUM
DONE:
MOV NEGNUM,AX
MOV POSNUM,BX
MOV ZERONUM,DX
INT 3
CODE ENDS
END START
DW 64 DUP(?)
STACK ENDS
DATA SEGMENT
TABLE DW 20
DW -10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9
NEGNUM DW 0
POSNUM DW 0
ZERONUM DW 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV CX,DATA
MOV DS,CX
MOV DI,OFFSET TABLE
XOR BL,BL
XOR DL,DL
XOR AL,AL
MOV CX,20
JCXZ DONE
LEA DI,TABLE+2
CMPNUM: CMP WORD PTR[DI],0
JGE A1
INC BL
JMP TONEXT
A1: JE A2
INC AL
JMP TONEXT
A2: INC DL
TONEXT: INC DI
INC DI
LOOP CMPNUM
DONE:
MOV NEGNUM,AX
MOV POSNUM,BX
MOV ZERONUM,DX
INT 3
CODE ENDS
END START
************************************************************************************
-U
0B73:0000 B9700B MOV CX,0B70
0B73:0003 8ED9 MOV DS,CX
0B73:0005 BF0000 MOV DI,0000
0B73:0008 32DB XOR BL,BL
0B73:000A 32D2 XOR DL,DL
0B73:000C 32C0 XOR AL,AL
0B73:000E B91400 MOV CX,0014
0B73:0011 E31B JCXZ 002E
0B73:0013 8D3E0200 LEA DI,[0002]
0B73:0017 833D00 CMP WORD PTR [DI],+00
0B73:001A 7D05 JGE 0021
0B73:001C FEC3 INC BL
0B73:001E EB0A JMP 002A
-G=0B73:0000
0B73:0000 B9700B MOV CX,0B70
0B73:0003 8ED9 MOV DS,CX
0B73:0005 BF0000 MOV DI,0000
0B73:0008 32DB XOR BL,BL
0B73:000A 32D2 XOR DL,DL
0B73:000C 32C0 XOR AL,AL
0B73:000E B91400 MOV CX,0014
0B73:0011 E31B JCXZ 002E
0B73:0013 8D3E0200 LEA DI,[0002]
0B73:0017 833D00 CMP WORD PTR [DI],+00
0B73:001A 7D05 JGE 0021
0B73:001C FEC3 INC BL
0B73:001E EB0A JMP 002A
-G=0B73:0000
AX=0009 BX=000A CX=0000 DX=0001 SP=0080 BP=0000 SI=0000 DI=002A
DS=0B70 ES=0B58 SS=0B68 CS=0B73 IP=0039 NV UP EI PL NZ NA PO NC
0B73:0039 CC INT 3
-
DS=0B70 ES=0B58 SS=0B68 CS=0B73 IP=0039 NV UP EI PL NZ NA PO NC
0B73:0039 CC INT 3
-
- 8086汇编语言学习实验3个程序及运行结果
- 实验 5.2.8-3 对文件的任意部分加锁 1. 用 fcntl()对文件进行锁操作。 2. 完善课件中的示例程序,给出程序运行结果及分析。 给b.txt中的前10个字节加写锁
- 汇编语言学习第四章-第一个程序
- 汇编语言实验2-汇编语言程序框架
- 第一个汇编语言程序
- 汇编语言第一个程序
- 汇编语言第一个程序
- 汇编语言第一个程序
- 第一个汇编语言程序
- 王爽汇编语言学习笔记(四) --第一个程序
- [汇编语言学习笔记][第四章第一个程序的编写]
- 汇编语言实验1-3
- 汇编语言实验1-3
- 汇编语言学习程序
- 实验 5.2.2-1 文件描述符的复制 1. 编写程序测试函数 dup()和 dup2()。 2. 给出运行结果及分析。
- 阅读程序写出运行结果3
- 程序运行结果
- 第一个D2D程序运行及配置
- 知道高手是怎么修电脑的吗<转>
- 头一次用
- DEBUG程序的使用
- 实验一 学习使用DEBUG工具
- 我先去忙工作,一会清闲了再过来看看
- 8086汇编语言学习实验3个程序及运行结果
- 毕设
- 某一天
- 见与不见
- 22世纪也不是中国人的世纪
- 请各位朋友多多指教,我是个菜鸟。
- 这个应该比较有前途。
- 为学
- 八种基本类型