Win32ASM学习[8]: 进制转换的库函数

 

在 masm32.inc 中有这样几个函数的声明:
 
byt2bin_ex  PROTO :BYTE, :DWORD
wrd2bin_ex  PROTO :WORD, :DWORD
dw2bin_ex   PROTO :DWORD, :DWORD
dw2hex_ex   PROTO :DWORD, :DWORD
bin2byte_ex PROTO :DWORD

--------------------------------------------------------------------------------------------------------------

.386
.model flat, stdcall

include    windows.inc
include    kernel32.inc
include    masm32.inc
include    debug.inc
includelib kernel32.lib
includelib masm32.lib
includelib debug.lib

.data
    szBin db 8 dup(0), 0  ;这是接收二进制字符串的缓冲区
    bVal  db 3
    wVal  dw 3
    szHex db 8 dup(0), 0  ;这是接收十六进制字符串的缓冲区
    dwVal dd 255
    szTxt1 db '00000010', 0
    szTxt2 db '01111011', 0
    szTxt3 db '11111111', 0


.code
main proc
;------------------------------------------------------------------------------------------------
    ;查看数字的二进制信息
    invoke byt2bin_ex, 2, addr szBin
    PrintString szBin ;00000010
   
    ;查看变量 bVal 的二进制信息
    invoke byt2bin_ex, bVal, addr szBin
    PrintString szBin ;00000011
   
    ;查看寄存器 al 的二进制信息
    mov al, 0feh
    invoke byt2bin_ex, al, addr szBin
    PrintString szBin ;11111110
    PrintLine
;------------------------------------------------------------------------------------------------   
    ;查看数字的二进制信息
    invoke wrd2bin_ex, 2, addr szBin
    PrintString szBin ;0000000000000010
   
    ;查看变量 wVal 的二进制信息
    invoke wrd2bin_ex, wVal, addr szBin
    PrintString szBin ;0000000000000011
   
    ;查看寄存器 ax 的二进制信息
    mov ax, 0fffeh
    invoke wrd2bin_ex, ax, addr szBin
    PrintString szBin ;1111111111111110
    PrintLine
;------------------------------------------------------------------------------------------------   
    ;查看数字的十六进制信息
    invoke dw2hex_ex, 16, addr szHex
    PrintString szHex ;00000010
   
    ;查看变量 dwVal 的十六进制信息
    invoke dw2hex_ex, dwVal, addr szHex
    PrintString szHex ;000000FF
   
    ;查看寄存器 eax 的十六进制信息
    mov eax, 2694881440
    invoke dw2hex_ex, eax, addr szHex
    PrintString szHex ;A0A0A0A0
;------------------------------------------------------------------------------------------------
    invoke bin2byte_ex, addr szTxt1
    PrintDec eax  ;2
   
    invoke bin2byte_ex, addr szTxt2
    PrintDec eax  ;123
  
    invoke bin2byte_ex, addr szTxt3
    PrintDec eax  ;255
    PrintLine
;------------------------------------------------------------------------------------------------
    lahf  ;LAHF 指令是把 EFLAGS 寄存器的低字节读入 AH
    invoke byt2bin_ex, ah, addr szBin
    PrintString szBin  ;01000110-----EFlage的低8位
ret
main endp
end main

------------------------------------------------------------------------------------------------------------------------------------------------- 

szBin = 00000010 (Test.asm, 28)
szBin = 00000011 (Test.asm, 32)
szBin = 11111110 (Test.asm, 37)
----------------------------------------
szBin = 0000000000000010 (Test.asm, 42)
szBin = 0011000000110000 (Test.asm, 46)
szBin = 1111111111111110 (Test.asm, 51)
----------------------------------------
szHex = 00000010 (Test.asm, 56)
szHex = 000000FF (Test.asm, 60)
szHex = A0A0A0A0 (Test.asm, 65)
eax = 2 (Test.asm, 68)
eax = 123 (Test.asm, 71)
eax = 255 (Test.asm, 74)
----------------------------------------
szBin = 00000110 (Test.asm, 79)

 

所以大家以后多看看头文件  给我们提供了哪些比较方便的东东哦  


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOJ 2800_三角形

真的是O不是0【看了discuss才发现。。。。。一个大写的蠢 【题意】多个黑白三角形组成的倒三角,求白三角形组成的最大倒三角的面积 【分析】由于问的是倒三角个数,所以只需看与行数奇偶性相同的白色倒三角形,设v[i][j]为以第i行第j列的倒三角…

ueditor富文本编辑器 修改框宽度和高度的方法

在使用ueditor的时候&#xff0c;用的textarea <textarea name"content" id"myEditor">这里写这条规则的回复内容</textarea> 给它加style"width:300" 属性的时候&#xff0c;发现不起作用。 正确的方法应该是&#xff1a; <scri…

Win32ASM学习[9]: 标志寄存器

TF(Trap Flag)——位8&#xff0c;跟踪标志。置1 则开启单步执行调试模式&#xff0c;置0 则关闭。在单步执行模式下&#xff0c;处理器在每条指令后产生一个调试异常&#xff0c;这样在每条指令执行后都可以查看执行程序的状态。如果程序用POPF、POPFD 或者ET 指令设置TF 标志…

TCP多进程并发服务端 Linux socket编程入门(2)

这里很简单的使用了fork()函数&#xff0c;在执行了fork()以后的所有代码都会由子进程和父进程同时执行。 他们同时拥有相同的资源&#xff08;两份拷贝&#xff09;&#xff0c;所以在子进程执行的过程中&#xff0c;子进程需要先close掉listenfd&#xff08;监听套接字&#…

ArcEngine 打开shape文件

IWorkspaceFactory wsf new ShapefileWorkspaceFactory(); IWorkspace pWorkspace wsf.Open(filePath, 0) ;//filePath为shapefile所在的文件夹 IFeatureWorkspace pFeatureWorkspace pWorkspace ; IFeatureClass pFeatureClass pFeatureWorkspace.OpenFeatureClass(&quo…

Win32ASM学习[10]:传送指令

汇编指令的一般性要求: 1、两个操作数的尺寸必须一致; 2、操作数不能同为内存. --------------------------------------------------------------------------------------------------------------- ;mov ;该指令不影响 EFlags ;指令格式: (其中的 r、m、i 分别表示: 寄存器、…

SQL Server 中关于 @@error 的一个小误区

SQL Server 中关于 error 的一个小误区 原文:SQL Server 中关于 error 的一个小误区在SQL Server中&#xff0c;我常常会看到有些前辈这样写&#xff1a; if(error<>0)ROLLBACK TRANSACTION T elseCOMMIT TRANSACTION T 一开始&#xff0c;我看见别人这么写&#xff0c;我…

Win32ASM学习[11]:逻辑运算

--------------------------------------------------------------------------------------------------------------------------- 一.逻辑与运算指令 AND 格式: AND OPRD1,OPRD2其中目的操作数OPRD1为任一通用寄存器或存储器操作数.源操作数OPRD2为立即数、任一通用寄存器…

JavaScript消息框

1.警告框 function myTest(){alert("这里的内容会弹出");} 2.确认框 其返回的值是 true 或 false 。 function myTest(){confirm("这里的内容会弹出");} 3.提示框 prompt prompt(参数1&#xff0c;参数2)&#xff1a;其参数1 是显示提示要输入的信息&…

.Net 事务

在分布式应用程序中&#xff0c;不可避免地会经常使用到事务控制。事务有一个开头和一个结尾&#xff0c;它们指定了事务的边界&#xff0c;事务在其边界之内可以跨越进程和计算机。事务边界内的所有资源都参与同一个事务。要维护事务边界内资源间的一致性&#xff0c;事务必须…

Win32ASM学习[12]:位测试指令位扫描指令

----------------------------------------------------------------------------------------------------------------------- 一.BT 指令 格式: BT OPD,OPS 功能: 目的操作数OPD中由源操作数OPS指定的位送CF标志 说明: 1. 在指令中,目的操作数OPD只能是16/32位通用寄存器…

Android WifiDisplay分析一:相关Service的启动

网址&#xff1a;http://www.2cto.com/kf/201404/290996.html 最近在学习Android 4.4上面的WifiDisplay(Miracast)相关的模块&#xff0c;这里先从WifiDisplay用到的各个Service讲起&#xff0c;然后再从WifiDisplaySettings里面讲解打开wfd的流程。首先看下面的主要几个Servic…

mvc controller跳转页面方法

1、直接Redirect后加 Controller/Action Response.Redirect("/User/Edit"); // return Redirect("/User/Edit"); return RedirectToAction("about","Home"); Response.Redirect("/User/Edit"); 2、直接r…

Win32ASM学习[13]:移位指令SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR,SHLD,SHRD

一. SHL、SHR、SAL、SAR: 移位指令 ---------------------------------------------------------------------------------------------------- ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR(Shift Ari…

angular中的表单验证

angular中的表单验证很强大&#xff0c; 一共有5中验证信息&#xff0c;$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候&#xff0c;为true,不通过的时候为false $invalid----当验证不通过的时候&#xff0c;为true&#xff0c;通过的时候为true $pris…

Cortex-A15 Memory Hierarchy

ARM 平台为实现速度和成本的平衡&#xff0c;使用多个层次的内存架构。对于多核 CPU 组成的 SOC&#xff0c;每个CPU 内部都有一组高速缓存&#xff0c;包含&#xff1a;ICache、DCache 和 TLB。多个 CPU 共享一个更大的 L2 缓存。L2缓存再和 CPU 外部的DDR3 内存交互。ICache …

Win32ASM学习[14]:符号扩展指令: CBW,CWDE,CDQ,CWD

----------------------------------------------------------------------------------------------------------------------------------------------------------------- ;CBW(Convert Byte to Word): 将 AL 扩展为 AX ;CWDE(Convert Word to Extended Double): 将 …

Win32ASM学习[15]:加减指令: INC、DEC、NEG、ADD、ADC、SUB、SBB、CMP

------------------------------------------------------------------------------------------------------------------------------------------------------------------- ;INC(Increment): 加一 ;DEC(Decrement): 减一 ;NEG(Negate): 求补(求反) ;ADD(Add): 加 ;A…

UINavigationController的简单使用

UINavigationController的使用步骤初始化UINavigationController设置UIWindow的rootViewController为UINavigationController根据具体情况&#xff0c;通过push方法添加对应个数的子控制器UINavigationController的子控制器UINavigationController以栈的形式保存子控制器proper…

Android 图片的缩略图

<1>简介 之前往往是通过Bitmap、Drawable和Canvas配合完成&#xff0c;需要写一系列繁杂的逻辑去缩小原有图片&#xff0c;从而得到缩略图。 现在我给大家介绍一种比较简单的方法&#xff1a;&#xff08;网上有&#xff09; 在Android 2.2版本中&#xff0c;新增了一个T…