先运行一下;

按二进制输出了十六进制的07h;

十六进制07,

转换为二进制是 111;4 + 2 + 1 = 7;

; print result in binary:
mov bl, 09h
mov cx, 8
print: mov ah, 2mov dl, '0'test bl, 10000000b; test first bit.jz zeromov dl, '1'
zero:  int 21hshl bl, 1
loop print
; print binary suffix:
mov dl, 'b'
int 21h

首先把要输出的数字放入bl;

把8放入cx,这个是循环次数;8位二进制数字每次输出一个;

把2放入ah,

int 21h,ah = 02 子功能,其功能是显示输出,要输出的字符放在dl寄存器中;
把 0 放入 dl;

比较bl和二进制的 10000000;

如果为零,跳到 zero 处;

如果非零,把 1 放入 dl;

这样就把每次要输出的1或0放入了dl;

汇编test指令:

Test命令将两个操作数进行逻辑与运算,并根据运算结果设置相关的标志位。

Test命令的两个操作数不会被改变。

Test对两个参数(目标,源)执行AND逻辑操作,并根据结果设置标志寄存器,结果本身不会保存。
TEST AX,BX 与 AND AX,BX 命令有相同效果,只是Test指令不改变AX和BX的内容,而AND指令会把结果保存到AX中。

intel对test指令的描述如下:

TEMP ←SRC1 AND SRC2;
  SF ←MSB(TEMP);
IF TEMP = 0
  THEN ZF ←1;
  ELSE ZF ←0;
  FI:
  
  PF ←BitwiseXNOR(TEMP[0:7]);
  CF ←0;
  OF ←0;
  (* AF is undefined *)

test运用举例
1.
test eax,100b;b后缀意为二进制
jnz ******;如果eax右数第三个位为1,jnz将会跳转

2.Test的一个非常普遍的用法是用来测试一方寄存器是否为空:
test ecx, ecx
jz somewhere
如果ecx为零,设置ZF零标志为1,jz跳转。

test后一般跟跳转指令;

然后执行 int 21h,输出了dl中的字符;

然后把bl内容左移一位;下次循环测试下一位是输出1还是0;

汇编shl指令:

SHL是一个汇编指令,作用是逻辑左移指令,将目的操作数顺序左移1位或CL寄存器中指定的位数。左移一位时,操作数的最高位移入进位标志位CF,最低位补零。

如此循环8次,输出每一位的1或0;

最后把字符'b'放入dl,输出此字符,二进制的结尾标志;

再输出一次;

十六进制9;

转换为二进制是1001; 2^3=8, 8+1=9;

看一下输出结果,没有错;

80x86汇编按二进制输出数字的程序图解和代码解释相关推荐

  1. python倒序输出数字的程序_python输入一个整数倒序输出

    信息举报 时间:2020-11-23 本页为您甄选多篇描写python输入一个整数倒序输出,python输入一个整数倒序输出精选,python输入一个整数倒序输出大全,有议论,叙事 ,想象等形式.文章 ...

  2. 基于80x86汇编的英文填字游戏程序

    一.游戏背景介绍 英文作为全世界通用语言,也是当今世界上应用最广泛的语言,世界上以英语为母语的人近4亿,并且已经有约20个国家把英语作为官方语言或者第二语言使用,在国际政治.经济.军事.科技.文化.贸 ...

  3. java不输出数字_为什么我的代码不输出(仅)数字?

    代码的运动提示:编写一个程序,告诉你给出的任何金额从1美分到99美分 . 使用25美分(四分之一),10美分(一分钱)和1美分(便士)的硬币面额 . 不要使用镍和半美元硬币 . 您的程序将使用以下函数 ...

  4. 微信小程序在线点餐外卖小程序实现方法适合校园点餐毕业设计小程序(含代码解释)

    随着目前的外卖强势入驻,很多的店铺也自己开发了一个自己的在线点餐系统,为了方便顾客可以实时的看到该店铺的菜品,更方便的满足顾客无需走动即可点到自己想吃的饭菜! 开发了这款微信小程序主要包含功能:微信登 ...

  5. 根据编号输出课程名称。从键盘输入1~3之间的任一个数字,程序将输出相应的课程名称。

    根据编号输出课程名称.从键盘输入1~3之间的任一个数字,程序将输出相应的课程名称. 1-代表"C语言程序设计" 2-代表 "Java程序设计" 3-代表 &qu ...

  6. 80X86汇编_绘制五角星程序

    80X86汇编_绘制五角星程序 DATAS SEGMENT mode  dw 0 COLOR DW 12 BKCOLOR DW 15 POINT dw 160,200,480,200,480,200, ...

  7. (汇编)输出数字、大写、小写字母

    问题:内存自source开始有20个数字.大写字母.小写字母的混合串(比如:1234567890abceFGHIJ)编程将其中的数字符号挑选出来存储到dst开始的内存中,做一个菜单,选1,2,3分别输 ...

  8. 让用户用键盘输入一个数字,程序可以由 1+2 +3+...... 一直累加到用户输入的数为止,并输出算式和计算结果。

    让用户用键盘输入一个数字,程序可以由 1+2 +3+...... 一直累加到用户输入的数为止,并输出算式和计算结果. 代码 演示 代码 #/bin/bash read -p "请输入一个数: ...

  9. 图解在emu8086中学习汇编语言数字比较程序

    打开emu8086,运行自带实例,数字比较程序:运行情况如下: 程序如下: 此示例,前面是些cmp语句的用法示例:正式程序从 game: 标号开始:程序结构如下: msg1 定义字符串,提示用户输入一 ...

最新文章

  1. C++ 通过模版工厂实现 简单反射机制
  2. 反正我不信!马斯克谈元宇宙:没人愿意把屏幕贴脸上
  3. 进程和线程基础知识全家桶,30 张图一套带走
  4. webpack学习笔记
  5. Algorithm:C++语言实现之内排序、外排序相关算法(插入排序 、锦标赛排序、归并排序)
  6. 程旭元系统漫画第三期:加班 !
  7. Angular4中常用管道
  8. python访问oracle时的问题总结
  9. 小凡模拟器(DynamipsGUI)打不开的简单解决方法
  10. VMware Workstation 安装ssh服务器
  11. 学习区块链经典教程:区块链技术与应用
  12. 计算机快速看图教程,CAD快速看图教程:CAD图纸测量方法集锦
  13. 神经网络与误差反向传播算法
  14. shader 学习之 pass 块
  15. 深度学习数学基础 熵?
  16. 北京智和信通受邀出席2022IT运维大会,荣获“2022智能运维星耀榜最具影响力企业”
  17. c++课程设计自助点餐系统
  18. Wannafly挑战赛26 御坂网络
  19. 关于av_freep
  20. 关于babe-loader^8.0.6的配置问题

热门文章

  1. Hystrix 熔断器01—— 概述 || Hystrix 重要概念
  2. Lookup Relationship与Master-Detail Relationship的关系 || formula的特性|| picklist在代码编写时的注意事项
  3. 电磁场与电磁波第一章公式总结
  4. CTFshow 爆破 web23
  5. 第十一周项目实践2 用邻接表存储的图来实现基本应用
  6. cart2pol函数
  7. 重写描述符(property)魔法方法时可能遇到的问题
  8. Linux下关机、重启
  9. 数据结构(python)
  10. 【MFC三天一个游戏】之 局域网黑白棋