如何将字变量w中16位二进制数以二进制的形式显示在显示器上?
发布网友
发布时间:2022-04-22 18:31
我来回答
共2个回答
热心网友
时间:2023-11-15 13:06
汇编的基本组成主要包括
数据段 ds
代码段 cs
代码的主要组成是指示性语句和指令性语句构成
指令性语句: 主要由指令构成的语句,
其格式为: [标号:]操作码[操作数][;注释]例如: LOP:ADD AL,[BX] 注意:标号(这里是LOP)必须用“:”结尾。标号一般作为在下面的某一步转移时用来标记的位置 如下面的第13行的t:和第20行的loop t loop就是用来跳转的指令。
指示性语句:要是由命令(亦称为伪指令)构成的指令,是用来只是汇编程序进行汇编 操作的,
其格式为: [名字/变量]命令 参数[;注释]如mov cx,16就是将16 送到cx里面存储。
下面是显示二进制数的汇编代码
;定义数据段
data segment
dat1 dw 5678H;dw是表示字,db标志字节,dd表示双字
data ends;每定义一个段时都要有结束的标志
;声明
code segment
assume ds:data,cs: code
start:
mov ax ,data;
mov ``ds,ax
;ds是数据段寄存器,你可能会疑惑为什么不能直接mov ds, data特定用法哈
mov bx,dat1;将dat1容器内的值赋值给bx
mov cx,16;cx一般作为计时寄存器特定功能
t:
rol bx,1;左移1位将首个二进制放到最后一位
mov dx,bx;将bx放到ds中因为如果再对bx操作的话会影响结果mov dl,bl
and dx ,01h;这样写浪费内存可以改为and dl,01h因为dx的容器分为低八位dl和高八位dh
add dx,30h;这是将dx里面的值与30h相加 这是得到0-1的方法可以查ascii表会发现30h的位置是0,。
mov ah,02h
int 21h;以上两句是打印到屏幕上的特定用法
loop t;判断的一句就是cx-1如果不为零就执行跳转指令如果为零就不执行跳转指令
mov ah,4ch
int 21h;以上两句是返回dos界面的特定写法
code ends
end start
显示如下:显示的结果是以BCD码的形式显示的
————————————————
版权声明:本文为CSDN博主「sofency」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43079376/article/details/85160120
热心网友
时间:2023-11-15 13:07
先获取变量W的值,再将它显示出来即可。因为它本身就是二进制的数了,不需要转换,直接显示即可。