鱼C论坛

 找回密码
 立即注册
查看: 4074|回复: 0

[技术交流] 程序目的是调用dos中断在屏幕上显示:(A)=10011010B

[复制链接]
发表于 2020-7-16 16:44:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
;程序目的是调用dos中断在屏幕上显示:(A)=10011010B
  1. DATA  SEGMENT ;数据段
  2.            A DB        10011010B;以A为标志的代码段偏移地址内容初始化为二进制10011010用十六进制就是 9AH 00H 两个字节
  3.            B DB        '(A)=;以B为标志的代码段偏移地址内容初始化为字符串'(A)=''为字符串结束标志
  4.            C1 DB        'B',0DH,0AH,';以C为标志的代码段偏移地址内容初始化为字符串'B',回车,换行,'为字符串结束标志
  5. DATA  ENDS;数据段结束

  6. STACK1 SEGMENT;堆栈段
  7.               DB        200 DUP(0);开辟200个双字节存空间
  8. STACK1 ENDS;堆栈段结束

  9. CODE SEGMENT;代码段
  10. ASSUME    DS:DATA,SS:STACK1,CS:CODE;把段名为DATA的段声明为数据段,把段名为STACK1的段声明为堆栈段,把段名为CODE的段声明为代码段

  11. ;代码段开始
  12.       START:  MOV       AX,DATA;把数据段地址传给AX寄存器
  13.               MOV       DS,AX;让DS寄存器保存数据段地址
  14.               LEA       DX,B;把以B为标志的代码段偏移地址传给DX寄存器
  15.               MOV       AH,09H;09传给AH
  16.               INT       21H;调用中断,结合上一句,作用:在屏幕上显示以DX寄存器内容为初始地址的字符串,到'为字符串结束标志
  17.               MOV       BL,A;把以A为标志的代码段偏移地址内容10011010(二进制)传给BX寄存器的低段
  18.               MOV       CL,8;初始化CL为8,为了循环8次,因为
  19.        NEXT:  MOV       DL,0;初始化DL
  20.               SAL       BL,1;把BL算数左移一位,相当于把最高位放入 CF(标志寄存器的进位标志位)
  21.               RCL       DL,1;把全0的DL寄存器带CF循环左移,相当于把把BL的最高位从CF给DL最低位,同时CF清0
  22.               ADD       DL,30H;对DL加上30H,相当于把数字转化为ASCII
  23.               MOV       AH,2;02传给AH
  24.               INT       21H;调用中断,结合上一句,作用:在屏幕上显示以DL寄存器内容ASCII的字符
  25.               DEC       CL;CL值减1
  26.               JNE       NEXT;CL值不为0转到NEXT标识的语句
  27.               LEA       DX,C1;把以C为标志的代码段偏移地址传给DX寄存器
  28.               MOV       AH,09H;09传给AH
  29.               INT       21H;调用中断,结合上一句,作用:在屏幕上显示以DX寄存器内容为初始地址的字符串,到'为字符串结束标志
  30.               MOV       AH,4CH;4CH传给AH
  31.               INT       21H;调用中断,结合上一句,作用:返回操作系统

  32. CODE ENDS;代码段结束
  33. END       START;程序结束
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-9 09:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表