汇编语言中内存中有一32位压缩BCD码,将其转换成十进制字符串?

作者&投稿:谢详 (若有异议请与网页底部的电邮联系)
汇编语言编写程序,将DATA_NUM起的4个压缩BCD码转换成十六进制数,并存放在DATA_NUM~

CODE SEGMENT ASSUME CS:CODE DATA_NUM DB 12H,23H,34H,45H,4 DUP(0) START: PUSH CS POP DS PUSH CS POP ES LEA SI,DATA_NUM MOV DI,SI ADD DI,4 CLD MOV CX,4 @M1: LODSB MOV BL,AL ROR BL,4 AND BL,0FH SHL BL,1 MOV BH,BL SHL BL,2 ADD BL,BH AND AL,0FH ADD AL,BL STOSB LOOP @M1 MOV AH,4CH INT 21H CODE ENDS END START

可以这样:
将其高低八位分别移入8位寄存器,高八位移入的寄存器逻辑左移4位,后与低八位移入的寄存器相或,将高八位寄存器赋给原来的寄存器或存储器中;
例如:
MOV CL,4
MOV AX,0506h
SHL AH,CL
OR AH,AL;高低八位寄存器相或,得AH=(0101 0110)B
得到AX的对应的BCD码在AH中。

32 位的压缩 BCD 码,可以分解成 8 位十进制数。
再分别加上 30H,即为十进制字符。
转换完了,怎么办?
显示吗?
删除吗?
...


汇编语言中内存中有一32位压缩BCD码,将其转换成十进制字符串?_百度...
32 位的压缩 BCD 码,可以分解成 8 位十进制数。再分别加上 30H,即为十进制字符。转换完了,怎么办?显示吗?删除吗?...

C语言中0和1有什么用?
1、二进制数字系统:0表示二进制中的零,通常用于表示关闭或未发生的状态。在C语言中,0通常表示假(false)或空。1表示二进制中的一,通常用于表示打开或发生的状态。在C语言中,1通常表示真(true)或有值。2、存储和通信和逻辑运算:许多硬件和通信协议使用0和1表示数据。例如,计算机内存中的数据...

C语言内存中是否存在一个区域,存储着变量的符号,变量的类型和变量的首...
回答:C语言标准不应该说编译的东西是什么,或者可以说,即使编译结果包含问题中的信息,也无法按照C语言标准获得这些信息。 一些想法虽然一般的编译器一般不存储信息,但为了调试或性能分析,常常会将类似的信息(如调试符号)存储在可执行文件或其他调试文件中,这样您可以在调试器中看到与标识符值对应的信息。 在...

在C语言中,‘1'、1、“1”有什么区别,他们在内存中分别是怎样储存?
1 是一个整数1“1”是一个字符串。1一般情况下’1‘ 是char 所以 占用一个字节的内存1 是整数所以占用 4字节内存“1” 是字符串,也就是字符数组,但是字符串需要一个\\0;所以 占用两个字节内存 评论| 2013-10-02 16:29HyperSpy|四级 '1'是一个字符,为char型数据,它在内存中占1个字节,即一个ASCII码(...

C语言中,数组在内存中占一片连续的存储区,由什么来代替它的首地址...
C语言中规定,数组名就代表了该数组的首地址。整个数组是以首地址开头的一块连续的内存单元。如有字符数组char c[10]。设数组c的首地址为2000,也就是说c[0]单元地址为2000。则数组名c就代表这个首地址。因此在c前面不能再加地址运算符&。如写作scanf("%s",&c);则是错误的。在执行函数printf...

在C语言中,1表示什么?
在C语言中,数字1表示一个整数值。C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。在C语言中,数字1被视为一个整型常量,通常用于算术运算、条件判断或作为数组索引等。例如,在算术运算中,...

在8086系统内存中,有一首地址为BUF有符号字节数组,共有10个元素,编写完...
0 CLD @1: LODSB CMP AL,0 JLE @2 INC BL @2: LOOP @1 MOV AL,BL POP BX RET PROC_COUNT ENDP CODE ENDS END START

C语言中,数组在内存中占一片()的存储区,由()代表它的首地址
数组在内存中占一片(连续)的存储区,由(首元素的地址)代表它的首地址数组名是一个(指针)常量,不能对它进行赋值运算 本回答由提问者推荐 举报| 答案纠错 | 评论(1) 14 3 其他回答 数组名是一个指针常量,不能给其赋值,就像1,2,3这样的整数一样值已给定! Viggo_Wilzon | 发布于2012-01-13 举报| ...

在编程语言中不存在向量吗
在编程语言中,向量(或称为数组、列表等,具体名称依语言而定)是一个核心概念,它确实存在并且被广泛应用。向量是一种数据结构,用于存储一系列的元素,这些元素可以是数字、字符、对象等,且这些元素在内存中通常是连续存储的(尽管高级语言中的抽象可能隐藏了这一细节)。不同的编程语言对向量的实现和...

为什么c语言中内存地址有负数,而汇编语言中内存地址没负数(在debug中...
溢出了,无法正常显示,所以产生负值

四方区17651887468: 汇编语言中内存中有一32位压缩BCD码,将其转换成十进制字符串? -
虿婕牡蛎: 32 位的压缩 BCD 码,可以分解成 8 位十进制数. 再分别加上 30H,即为十进制字符. 转换完了,怎么办? 显示吗? 删除吗? ...

四方区17651887468: 汇编语言中的bcd码默认是压缩bcd还是非压缩bcd? -
虿婕牡蛎: 这个,没有默认,只有开发者定义使用哪种编码.早年的时候,计算机的配备比较低,为了节省内存,使用压缩的BCD码就比较好,现在存储这方面的限制比较小了,非压缩也无所谓了.主要看开发者喜欢哪种方式了.

四方区17651887468: 汇编语言判断 -
虿婕牡蛎: 1、MOV BL,CX ;错.操作数类型不匹配,BL是8位寄存器,CX是16位寄存器 2、MOV [BX],[DI] ;错.不允许两个操作数都是存储单元 3、MOV CX,AX ;正确 4、MUL 10H ;错.乘法指令不允许立即数作乘数 5、CMP AX,1234H ;正确

四方区17651887468: 内存中有下列指令 地址 1234H 机器语言 B812AB 汇编语言 MOV AX,5678H -
虿婕牡蛎: 执行完这条指令后,IP会指向下一条待执行的指令,这条指令机器码占6个字节,所以,IP为123Ah,ax是16位寄存器,执行完后,ax为5678h,

四方区17651887468: 汇编语言以 - --形式存储在内存中,指令ADD BX,CX占内存---个字节. -
虿婕牡蛎: 汇编语言以_二进制_形式存储在内存中,指令ADD BX,CX占内存_2_个字节.

四方区17651887468: 要定义一个子程序,应采用以下伪指令组 - 上学吧普法考试
虿婕牡蛎: ebx是32位,是bx的2倍.8086汇编中只有bx 在32位汇编中有ebx

四方区17651887468: 汇编语言.在内存中,每一小段的大小为多少 答案是16B.为什么? -
虿婕牡蛎: 在8086汇编中,内存地址共20位二进制位.其中又分为16位的段地址再加段内偏移.最小的段偏移为4位的二进制位即16个字节.即答案是16B.

四方区17651887468: 汇编语言中这一句buf db 4 dup(?)为什么编译不过,会出现这个错误: -
虿婕牡蛎: 出现这一错误的原因个人认为是在内存空间的建立上,db和dw的根本区别的一个是字节,一个是字,前者占有大小为后者的一半,问号的动态分配内存,在大小不定的情况下,就报错了.0是强制分配,没报错,但是结果会有差别的. 在你室友电脑上能用可能是因为他是64为系统,而你的是32位系统! 不知对否,我已经快一年没写过汇编程序了!

四方区17651887468: 汇编 32位 变量怎么定义和使用 -
虿婕牡蛎: 汇编语言定义变量的格式为 【变量名】【变量类型】【数值列表】 其中 变量类型有 db dw dd等,分别表示变量占有的内存空间(依次为1,2,4个字节) 如:a db 1,2,3,4 就定义了名称为a的4个占1个字节的变量,分别是1,2,3,4(严格来说是0001,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网