实验一 二进制加、减法编程实验
更多微机实验:https://blog.youkuaiyun.com/yxp189/column/info/39992
注意:未经允许,请勿转载!
转载请标明出处~
适用课程:微机原理与接口技术(实验)
选用教材:微型计算机原理与接口技术-中国科学技术大学出版社
一、实验要求和目的
1.熟悉汇编语言二进制多字节加法基本指令的使用方法;
2.熟悉汇编语言二进制多字节减法基本指令的使用方法;
3.掌握汇编语言编程的一般结构。
二、实验内容
(1)编写程序,实现长度为2字的两个数相加。
(2)编写程序,实现一个长度为2字的数和一个长度为1字的数相减。
实验代码:
①实验内容(1)
长度为2字的两个数相加。
;author:YXP
;优快云:yxp189
;e-mail:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 DW 2 DUP(0)
NUM2 DW 2 DUP(0)
SUM DW 3 DUP(0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV AX,0201H
MOV [NUM1],AX
MOV AX,0304H
MOV [NUM1+2],AX
MOV AX,0FF01H
MOV [NUM2],AX
MOV AX,0FFFFH
MOV [NUM2+2],AX
MOV AX,[NUM1]
ADC AX,[NUM2]
MOV [SUM],AX
MOV AX,[NUM1+2]
ADC AX,[NUM2+2]
MOV [SUM+2],AX
MOV AX,0
ADC AX,0
MOV [SUM+4],AX
MOV AX,4C00H
INT 21H
CODES ENDS
END START
①实验内容(2)
一个长度为2字的数和一个长度为1字的数相减。
;author:YXP
;优快云:yxp189
;e-mail:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 DW 2 DUP(0)
NUM2 DW 1 DUP(0)
SUM DW 2 DUP(0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV AX,0000H
MOV [NUM1],AX
MOV AX,0304H
MOV [NUM1+2],AX
MOV AX,5F01H
MOV [NUM2],AX
MOV AX,[NUM1]
SBB AX,[NUM2]
MOV [SUM],AX
MOV AX,[NUM1+2]
SBB AX,0
MOV [SUM+2],AX
MOV AX,4C00H
INT 21H
CODES ENDS
END START