【汇编语言】统计字符个数,二进制显示

【汇编语言】统计字符个数,二进制显示

微机原理实验题目

题目#

解答#

.486
DATAS SEGMENT USE16
	BUF   DB  'I AM A STUDENT'	;含有B,C,D的个数为2
	NUM   DB  0               	;统计42H至45H的个数
	LEN   EQU $-BUF           	;获得BUF的长度
DATAS ENDS

CODES SEGMENT USE16
	      ASSUME CS:CODES,DS:DATAS
	START:
	      MOV    AX,DATAS
	      MOV    DS,AX
	      MOV    AH,BUF
	      MOV    BYTE PTR [BX],AH
	      MOV    CX,LEN	;遍历字符串,循环1的次数为字符串长度
	AGAIN1:
	      MOV    SI,CX
	      CMP    BYTE PTR [BX+SI-1],42H ;基址加变址寻址,利用CX--的特性
	      JC     NEXT
	      CMP    BYTE PTR [BX+SI-1],45H
	      JA     NEXT
	      INC    NUM;NUM++的条件是42H<x<45H,即x=B,C,D
	NEXT: 
	      LOOP   AGAIN1
	      MOV	 CX,8   ;循环2的次数为8,因为显示为8位二进制数
	AGAIN2:
		  SHL	 NUM,1
		  MOV    DL,30H     ;先默认DL为30H,即显示0
		  JNC	 ShowZero	;如果C标志为0,那么接下来就不将DL+1
		  ADD	 DL,01H			
    ShowZero:
	      MOV    AH,02H  
	      INT 	 21H  	  
		  LOOP	 AGAIN2      

	      MOV    AH,4CH
	      INT    21H
CODES ENDS
    END START


作者:Baiyug

出处:https://www.cnblogs.com/Baiyug/p/16187526.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Baiyug  阅读(158)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu