河北工业大学汇编语言程序设计实验三

河北工业大学汇编语言程序设计实验三
3-1

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
X1   DW 3 DUP (0)
X2   DW 3 DUP (0)
X    DW 0
Y    DW 0
RE   DW 3 DUP (0)
STR1 DB 'X1 + X2 = $'
STR2 DB 13,10,'X1 - X2 = $' 
STR3 DB '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
DATA ENDS

CODE SEGMENT
START:
   MOV AX,DATA
   MOV DS,AX
   MOV AX,0

SETX1:
   MOV DI,OFFSET X1
   MOV BX,0
   MOV [BX+DI],0FABCH
   ADD BX,2
   MOV [BX+DI],0FCCCH
   ADD BX,2
   MOV [BX+DI],0ABC0H

SETX2:
   MOV DI,OFFSET X2
   MOV BX,0
   MOV [BX+DI],0F000H
   ADD BX,2
   MOV [BX+DI],0F000H
   ADD BX,2
   MOV [BX+DI],0AAAH

JIAFA:
   MOV DI,OFFSET X1
   MOV BX,0
   MOV AX,[BX+DI]
   MOV DI,OFFSET X2
   MOV CX,[BX+DI]
   ADD AX,CX
   MOV DX,0
   ADC DX,0
   MOV DI,OFFSET RE
   MOV [BX+DI],AX

   ADD BX,2
   MOV DI,OFFSET X1
   MOV AX,[BX+DI]
   MOV DI,OFFSET X2
   MOV CX,[BX+DI]
   ADD AX,DX
   ADC DX,0
   ADD AX,CX
   MOV DX,0
   ADC DX,0
   MOV DI,OFFSET RE
   MOV [BX+DI],AX

   ADD BX,2
   MOV DI,OFFSET X1
   MOV AX,[BX+DI]
   MOV DI,OFFSET X2
   MOV CX,[BX+DI]
   ADD AX,DX
   ADD AX,CX
   MOV DX,0
   ADC DX,0
   MOV DI,OFFSET RE
   MOV [BX+DI],AX




SHUCHU:
   MOV DX,OFFSET STR1
   MOV AH,09H
   INT 21H
   MOV CX,4
   MOV AX,RE+4
SHUCHU1:                                           ;输出高四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU1

   MOV CX,4
   MOV AX,RE+2
SHUCHU2:                                             ;输出中四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU2

   MOV CX,4
   MOV AX,RE
SHUCHU3:                                             ;输出低四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU3
   
   MOV DL,'H'
   MOV AH,02H
   INT 21H

JIANFA:
   MOV DI,OFFSET X1
   MOV AX,[DI]
   MOV BX,[DI+2]
   MOV CX,[DI+4]
   MOV DI,OFFSET X2
   MOV DX,[DI]
   SUB AX,DX
   SBB BX,0
   SBB CX,0
   MOV DI,OFFSET RE
   MOV [DI],AX

   MOV DI,OFFSET X2
   MOV DX,[DI+2]
   SUB BX,DX
   SBB CX,0
   MOV DI,OFFSET RE
   MOV [DI+2],BX

   MOV DI,OFFSET X2
   MOV DX,[DI+4]
   SUB CX,DX
   MOV DI,OFFSET RE
   MOV [DI+4],CX


SHUCHU4:
   MOV DX,OFFSET STR2
   MOV AH,09H
   INT 21H
   MOV CX,4
   MOV AX,RE+4
SHUCHU5:                                           ;输出高四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU5

   MOV CX,4
   MOV AX,RE+2
SHUCHU6:                                             ;输出低四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU6

   MOV CX,4
   MOV AX,RE
SHUCHU7:                                             ;输出低四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR3
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU7
   
   MOV DL,'H'
   MOV AH,02H
   INT 21H
   
   MOV AX,4C00H
   INT 21H

CODE ENDS
END START

3-3

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
X    DW 0
Y    DW 0
SHU1 DW 0
SHU2 DW 0
HE   DW 0
CHA  DW 0
JI   DW 2 DUP (?)
SHAN DW 2 DUP (?)
STR1 DB 'Please Enter The Frist Number:$'
STR2 DB 13,10,'Please Enter The Second Number:$'
STR3 DB '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
STR4 DB 13,10,'X1 + X2 = $'
STR5 DB 13,10,'X1 - X2 = $'
STR6 DB 13,10,'X1 * X2 = $'
STR7 DB 13,10,'X1 / X2 = $'
STR8 DB '......$'
DATA ENDS

CODE SEGMENT
START:
   MOV AX,DATA
   MOV DS,AX
   MOV AX,0

SHURU1:
   MOV DX,OFFSET STR1
   MOV AH,09H
   INT 21H
   
   MOV AH,01H
   INT 21H
   SUB AX,130H
   MOV BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX

   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX
   

   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX
   
   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX

   MOV SHU1,BX

SHURU2:
   MOV DX,OFFSET STR2
   MOV AH,09H
   INT 21H
   
   MOV AH,01H
   INT 21H
   SUB AX,130H
   MOV BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX

   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX
   

   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX
   MOV AX,0AH
   MUL BX
   MOV BX,AX
   
   MOV AH,01H
   INT 21H
   SUB AX,130H
   ADD BX,AX

   MOV SHU2,BX

JIAFA:
   MOV AX,SHU1
   MOV BX,SHU2
   ADD AX,BX
   MOV HE,AX

JIANFA:
   MOV AX,SHU1
   MOV BX,SHU2
   SUB AX,BX
   MOV CHA,AX

CHENGFA:
   MOV AX,SHU1
   MOV BX,SHU2
   MOV DX,0
   MUL BX
   MOV JI+2,DX
   MOV JI,AX

CHUFA:
   MOV DX,0
   MOV AX,SHU1
   MOV BX,SHU2
   DIV BX
   MOV SHAN,AX
   MOV SHAN+2,DX
                 

SHUCHU1:                                ;输出加法结果
   MOV DX,OFFSET STR4
   MOV AH,09H
   INT 21H                   
                  
   MOV AX,HE

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H
                 
SHUCHU2:                                ;输出减法结果
   MOV DX,OFFSET STR5
   MOV AH,09H
   INT 21H                       

   MOV AX,CHA

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H
   
                          ;输出乘法结果,输出前的准备

SHUCHU3:                                ;输出乘法结果
   MOV DX,OFFSET STR6
   MOV AH,09H
   INT 21H 

   MOV AX,JI+2

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV AX,JI

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

SHUCHU4:
   MOV DX,OFFSET STR7
   MOV AX,09H
   INT 21H

   MOV AX,SHAN

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,OFFSET STR8
   MOV AX,09H
   INT 21H

   MOV AX,SHAN+2

   MOV DX,0
   MOV BX,1000
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,100
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,10
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

   MOV DX,0
   MOV BX,1
   MOV AX,CX
   DIV BX
   ADD AX,30H
   MOV CX,DX
   MOV DX,0
   MOV DX,AX
   MOV AH,02H
   INT 21H

EXIT:
   MOV AX,4C00H
   INT 21H

CODE ENDS
END START
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值