更多微机实验:https://blog.csdn.net/yxp189/column/info/39992
汇编语言-微机原理与接口技术-实验
注意:未经允许,请勿转载!
转载请标明出处~
适用课程:微机原理与接口技术(实验)
选用教材:微型计算机原理与接口技术-中国科学技术大学出版社
一、实验要求和目的
1.熟悉BCD码的基本知识
2.熟悉汇编语言BCD码多字节加减法基本指令的使用方法;
3.掌握BCD码调整指令的使用方法。
二﹑实验内容
编写程序,从键盘输入任意2个数,实现
1. 两数相加,结果显示在屏幕上.
2. 两数相减,结果显示在屏幕上.
①实验内容(1)
两数相加,结果显示在屏幕上.
;author:YXP
;CSDN:yxp189
;e-mail:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 DB 4 DUP(0)
NUM2 DB 4 DUP(0)
SUM DB 5 DUP(0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV CX,4
MOV SI,OFFSET NUM1
READ1: MOV AH,01H
INT 21H
MOV [SI],AL
INC SI
LOOP READ1
MOV CX,4
MOV SI,OFFSET NUM2
READ2: MOV AH,01H
INT 21H
MOV [SI],AL
INC SI
LOOP READ2
MOV DI,OFFSET SUM
MOV CX,4
OP:
MOV AH,00H
MOV SI,OFFSET NUM1
MOV AL,[BX][SI]
PUSH SI
MOV SI,OFFSET NUM2
MOV DL,[BX][SI]
ADC AL,DL
AAA
INC BX
ADD [DI],AL
AAA
INC DI
MOV [DI],AH
LOOP OP
MOV [DI],AH
MOV CX,5
MOV SI,OFFSET SUM
MOV BX,4
OUT2: MOV AH,02H
MOV DL,[BX][SI]
OR DL,30H
INT 21H
DEC BX
LOOP OUT2
MOV AX,4C00H
INT 21H
CODES ENDS
END START
①实验内容(2)
两数相减,结果显示在屏幕上.
;author:YXP
;CSDN:yxp189
;e-mail:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 DB 5 DUP(0)
NUM2 DB 4 DUP(0)
SUM DB 5 DUP(0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV CX,5
MOV SI,OFFSET NUM1
MOV BX,4
READ1: MOV AH,01H
INT 21H
MOV [BX][SI],AL
DEC BX
LOOP READ1
OUTM: MOV AH,02H
MOV DL,2DH
INT 21H
MOV CX,4
MOV BX,3
MOV SI,OFFSET NUM2
READ2: MOV AH,01H
INT 21H
MOV [BX][SI],AL
DEC BX
LOOP READ2
OUTE: MOV AH,02H
MOV DL,3DH
INT 21H
CLC
MOV DI,OFFSET SUM
MOV BX,0000H
MOV CX,4
OP:
MOV AH,00H
MOV SI,OFFSET NUM1
MOV AL,[BX][SI]
MOV SI,OFFSET NUM2
MOV DL,[BX][SI]
SBB AL,DL
AAS
MOV [BX][DI],AL
INC BX
LOOP OP
MOV AL,00H
MOV SI,OFFSET NUM1
MOV DL,[BX][SI]
SBB DL,AL
AAS
MOV AL,DL
MOV SI,OFFSET SUM
MOV [BX][DI],AL
MOV CX,5
MOV SI,OFFSET SUM
MOV BX,4
OUT2: MOV AH,02H
MOV DL,[BX][SI]
OR DL,30H
INT 21H
DEC BX
LOOP OUT2
MOV AX,4C00H
INT 21H
CODES ENDS
END START