南邮微机实验一

(实验1.2)以十进制形式显示“25+9”的结果

.486
DATA SEGMENT USE16
SUM DB ?,?
MESG DB '25+9='
     DB  0,0,'$'
N1 DB 9,0F0H
N2 DW 25
DATA ENDS

CODE SEGMENT USE16
     ASSUME CS:CODE,DS:DATA
BEG:MOV AX,DATA
    MOV DS,AX
    MOV BX,OFFSET SUM
    MOV AH,N1
    MOV AL,BYTE PTR N2
    ADD AH,AL
    MOV BYTE PTR [BX],AH

    MOV SI,OFFSET MESG
    CALL CHANG
    MOV AH,9
    MOV DX,OFFSET MESG
    INT 21H
    MOV AH,4CH
    INT 21H

CHANG PROC
LAST:CMP BYTE PTR [BX],10
     JC NEXT
     SUB BYTE PTR [BX],10
     INC BYTE PTR [SI+5]
     JMP LAST
NEXT:MOV AH,BYTE PTR [BX]
     ADD BYTE PTR [SI+6],AH
     ADD BYTE PTR [SI+5],30H
     ADD BYTE PTR [SI+6],30H
     RET
CHANG ENDP

CODE ENDS
END BEG 

实验2.10)统计串中在42H~45H范围内的字符个数,以二进制形式在屏幕显示。

.486
DATA SEGMENT USE16
BUF DB 'aDDBCAEaaaaBCH'
CNT EQU $-BUF
DATA ENDS

CODE SEGMENT USE16
     ASSUME CS:CODE,DS:DATA
BEG:MOV AX,DATA
    MOV DS,AX
    MOV CX,CNT
	MOV SI,OFFSET BUF
	MOV BX,0
AGA:CMP BYTE PTR [SI],42H
    JC NEXT
	CMP BYTE PTR [SI],45H
	JA NEXT
	INC BX
NEXT:INC SI
    LOOP AGA

	CALL DISP
	MOV AH,2
	MOV DL,'B'
	INT 21H
    MOV AH,4CH
    INT 21H
DISP PROC
     MOV CX,16
LAST:MOV DL,'0'
     RCL BX,1
	 JNC PRINT
	 MOV DX,'1'
PRINT:MOV AH,2
     INT 21H
	 LOOP LAST
	 RET
DISP ENDP
CODE ENDS
END BEG 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值