用汇编怎么将16进制转ASCII码

用汇编怎么将16进制转ASCII码,第1张

比如说1aH

转换成ASCII就是31h,41h

计算过程就是当<A时,+30h,否则加37h

mov mem,1ah

mov al,mem

and al,0f0h

shr al,4

cmp al,a

jb xx

add al,7h

xx:

add al,30h

mov dl,al

mov ah,02h

int 21h

mov al,mem

and al,0fh

cmp al,a

jb xxx

add al,7h

xxx:

add al,30h

mov dl,al

mov ah,02h

int 21h

汇编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。在汇编语言中,用助记符(Memoni)代替 *** 作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理的系统软件。

你要一年前问我就能顺利一点地帮你解答了~当年汇编学的还行,现在忘记的差不多了。。不过我可以简单分析一下

MOV

R0,

#00H就是吧0放到R0这个寄存器,#0FFH这个是16进制的数,对应2进制11111111,,JZ是根据ZF决定是否跳转,ZF是标志寄存器中的一位,若ZF=1,则跳转,否则,不跳,ZF是看运算结果是不是0的,是0就为1,不是就为0。

那个P1是不是写错了?感觉应该是R1吧。。。

XRL

A

,

#0FFH,寄存器A中的内容和后面那个#0FFH执行逻辑异或 *** 作。结果存放在A中。

DJNZ是用来控制循环次数的,DJNZ

R3,SS,意思就是执行这一句,R3里面的数值自动减一,看是不是0,不是0就跳到SS的标识符语句后,是0就顺序执行。

DIV

AB应该是DIV

A,B吧,我感觉,就是用A里面的数除以B里面的数,结果放进A寄存器。

SJMP是相对转移指令,没有条件。

ACALL就是调用子程序,好像是多少字节距离内的可以调用,我忘了,不过这里不影响,就是调用MOV

R1,

#249这个。

NOP好像是用来清空标志位的。

汇编逻辑要求有点高,子程序调用这块要设计栈的栈底和栈顶指针的变化,我不太记得了,有点混乱。。。程序差不多就是表达个这个意思,结合这些然后转换成c的函数,看自己喜欢怎么写咯。

不好意思不能回答的很确切,我就记得那么多了~你如果在学那应该很容易解决,没有学的话可以看点资料,其实我觉得汇编很容易理解,比较底层么,直来直去的,就是逻辑有点麻烦~

有可能有些说的不确切,还望谅解~

VC60下有两种方法:

(1)增加参数/FA:Project->Setting,C/C++选项卡中的Project Options中增加参数/FA,编译后debug目录中将会增加对应源文件的汇编文件(asm)。

(2)如果想查看C语句对应的汇编代码的话,可以这样:F11单步调试,在debug工具栏中选择“disassembly”即可。每行C代码下面就是对应的汇编代码。

如果debug工具栏不见了,可在VC上方空白菜单处右键,选择“debug”即可d出debug工具栏。

例如:

C代码程序:

int main()

{

int a = 3;

int b = 4;

int c = a + b;

printf("c=%d/n", c);

return 0;

}

对应的汇编代码程序(部分)如下:

5: int a = 3;

00401028 mov dword ptr [ebp-4],3

6: int b = 4;

0040102F mov dword ptr [ebp-8],4

7: int c = a + b;

00401036 mov eax,dword ptr [ebp-4]

00401039 add eax,dword ptr [ebp-8]

0040103C mov dword ptr [ebp-0Ch],eax

gcc下编译加参数-S,如gcc ac -S,编译后会自动生成汇编文件aasm。

以上就是关于用汇编怎么将16进制转ASCII码全部的内容,包括:用汇编怎么将16进制转ASCII码、汇编转换c语言:将下面的一段代码转换成C语言、如何将C语言代码转换为对应的汇编代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10211626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存