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

河北工业大学汇编语言程序设计实验二
2-4

ASSUME CS:CODE,DS:DATA

DATA SEGMENT                           
STAR DB '* $'                               ;定义输出时需要用到的*,换行
N    DB 13,10,'$'
I    DW 0
J    DW 0                                   ;定义用于控制行列输出的变量I,J
DATA ENDS

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

   MOV AH,01H                               ;输入需要打印的三角形的行数
   INT 21H
   SUB AX,130H
   MOV I,AX
   MOV J,AX

   MOV DX,OFFSET N                          ;打印三角形开始前先输出一个换行符
   MOV AH,09H
   INT 21H

   MOV CX,I
L1:                                         ;第一层循环
   MOV I,CX
   MOV CX,J
L2:
   MOV DX,OFFSET STAR                       ;在内层循环里打印*号
   MOV AH,09H
   INT 21H
   LOOP L2

   MOV BX,J                                 ;调整打印*号的数目
   SUB BX,1
   MOV J,BX
   MOV CX,I                                 ;还原外层循环CX
   MOV DX,OFFSET N                          ;打印换行符
   MOV AH,09H
   INT 21H
   LOOP L1

   MOV AX,4C00H
   INT 21H

CODE ENDS
END START

2-5

ASSUME CS:CODE,DS:DATA

DATA SEGMENT
BUF  DW 0F000H,0F000H,0F000H,0D00H,0001H      ;预先设计好需要求和的五个数,最终和大于FFFFH
RESULT DW 2 DUP (0)
X    DW 0
Y    DW 0
STR  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
   MOV DX,0

   CALL QIUHE                                         ;进入求和子程序

   CALL SHUCHU                                        ;进入输出子程序

   MOV AX,4C00H
   INT 21H
;*************************************************
QIUHE:
   MOV CX,5
   MOV DI,OFFSET BUF                                  ;找到需要求和的数组的首地址
   MOV BX,0
QIUHE1:
   ADD AX,[BX+DI]
   ADC DX,0                                           ;使用带进位的ADC操作记录溢出的最高位
   ADD BX,2
   MOV RESULT,AX                                      ;每进行一次求和更新一次RESULT
   MOV RESULT+2,DX
   LOOP QIUHE1
   RET
;*************************************************
SHUCHU:
   MOV CX,4
   MOV AX,RESULT+2
SHUCHU1:                                              ;输出高四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU1

   MOV CX,4
   MOV AX,RESULT
SHUCHU2:                                             ;输出低四位
   MOV X,CX
   MOV CL,4
   ROL AX,CL
   MOV Y,AX
   AND AX,0000000000001111B
   MOV BX,AX
   MOV DI,OFFSET STR
   MOV DL,[BX+DI]
   MOV AH,02H
   INT 21H
   MOV AX,Y
   MOV CX,X
   LOOP SHUCHU2
   
   MOV DL,'H'
   MOV AH,02H
   INT 21H
   RET
;***********************************************
CODE ENDS
END START
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值