2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 汇编

汇编中02h和09h的区别

时间:03-11来源:作者:点击数:68

MOV AH,02H(mov ah 09h)

INT 21H

02h是输出单个字符,而 09h是输出以‘$’结尾的字符串

例子:

02h的输出

  • DATA SEGMENT
  • BUF1 DB 'EEEEEENENEN.'
  • LEN1=$-BUF1
  • BUF2 DB 'EEEEEENANAN!'
  • LEN2=$-BUF2
  • DATA ENDS
  • CODE SEGMENT
  • ASSUME CS: CODE, DS: DATA
  • START:MOV AX, DATA
  • MOV DS,AX
  • LEA SI,BUF1
  • ;MOV CX,LEN1
  • ;CALL CMMP
  • LEA DI,BUF2
  • MOV CX,LEN1
  • CALL CMMP
  • MOV AH,4CH
  • INT 21H
  • CMMP PROC NEAR;子程序
  • ;利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来.
  • L:MOV DL,[SI]
  • CMP DL,[DI]
  • JZ L1
  • MOV AL,'Y'
  • MOV [SI],AL
  • MOV AH,02H;单个字符的输出
  • INT 21H
  • L1:INC SI
  • INC DI
  • LOOP L
  • RET
  • CMMP ENDP
  • CODE ENDS
  • END START

09h的输出

  • DATA SEGMENT
  • BUF1 DB 'DSSSSSSSNNNs',0AH,0DH,'$'
  • LEN1=$-BUF1
  • BUF2 DB 'WERTYUGJINNNN!','$ '
  • LEN2=$-BUF2
  • DATA ENDS
  • CODE SEGMENT
  • ASSUME CS: CODE, DS: DATA
  • START:MOV AX, DATA
  • MOV DS,AX
  • LEA SI,BUF1
  • MOV CX,LEN1
  • CALL CMMP
  • LEA SI,BUF2
  • MOV CX,LEN2
  • CALL CMMP
  • MOV AH,4CH
  • INT 21H
  • CMMP PROC
  • ;子程序搜索指定字符缓冲区中是否有N,如果有用Y替代。调用子程序将BUF1,BUF2,BUF3中的N全部用Y替代.
  • MOV DX,SI
  • L:CMP BYTE PTR[SI], 'N'
  • JNZ L1
  • MOV AL,'Y'
  • MOV [SI],AL
  • L1:INC SI
  • LOOP L
  • MOV AH,09H;输出字符串"DSSSSSSSYYYs"和"WERTYUGJIYYY!"
  • INT 21H
  • RET
  • CMMP ENDP
  • CODE ENDS
  • END START
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门