实验三 二进制乘、除法编程实验
更多微机实验:https://blog.youkuaiyun.com/yxp189/column/info/39992
注意:未经允许,请勿转载!
转载请标明出处~
适用课程:微机原理与接口技术(实验)
选用教材:微型计算机原理与接口技术-中国科学技术大学出版社
一、实验要求和目的
1.熟悉数据的补码表示。
2.熟悉无符号数和有符号数乘法和除法指令的使用;
3.掌握符号位扩展指令的使用。
二﹑实验内容
(1)被除数是一个2字长的有符号数,除数是一个1字长的有符号数,求两个数相除的商和余数。(实现二进制数的操作)
(2)求两个1字长的无符号数相乘的结果,并将结果保存在存储空间中。
实验代码:
①实验内容(1)
被除数是一个2字长的有符号数,除数是一个1字长的有符号数,求两个数相除的商和余数。(实现二进制数的操作)
;Author:YXP
;优快云:yxp189
;Email:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 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 NUM1,0901H
MOV DX,0108H
MOV AX,0105H
MOV CX,NUM1
IDIV CX
MOV [SUM],AX
MOV [SUM+2],DX
MOV AX,4C00H
INT 21H
CODES ENDS
END START
②实验内容(1)
求两个1字长的无符号数相乘的结果,并将结果保存在存储空间中。
;Author:YXP
;优快云:yxp189
;Email:yxp189@protonmail.com
;如有问题,欢迎和我联系~
;转载请标明出处~
STACKS SEGMENT STACK
DW 128 DUP(?)
STACKS ENDS
DATAS SEGMENT
NUM1 DW 1 DUP(0)
NUM2 DW 2 DUP(0)
SUM DW 2 DUP(0)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV NUM1,1050H
MOV NUM2,2030H
MOV AX,NUM1
MOV CX,NUM2
MUL CX
MOV SI,OFFSET SUM
MOV [SI],AX
MOV [SI+2],DX
MOV CX,6
MOV SI,OFFSET SUM
MOV BX,5
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