Irvine32链接库的isdigit源代码

首先回顾一下0~9这10个字符以ASCII码表示,它们的二进制、十六进制、十进制分别是什么。

二进制 十进制 十六进制 字符
00110000 48 30H 0
00110001 49 31H 1
00110010 50 32H 2
00110011 51 33H 3
00110100 52 34H 4
00110101 53 35H 5
00110110 54 36H 6
00110111 55 37H 7
00111000 56 38H 8
00111001 57 39H 9

Isdigit子过程的功能是,检查存放在AL寄存器里的内容,按照ASCII标准是否可以解释为字符0~9,如果是ZF=1,否则ZF=0。源代码如下:

Isdigit PROCcmp al, 00110000bjb ID1             ;al如果小于00110000b那么相减会得负数,证明al小于0。ZF自动被设置为0。cmp al, 00111001bja ID1             ;al如果大于00111001b那么相减结果正数,证明al大于0。ZF自动被设置为0。test ax,0          ;如果以上都通过,利test将ZF设置为1。
ID1: ret
Isdigit ENDP

x86汇编_Irvine32链接库的子过程isdigit源代码讲解_笔记42相关推荐

  1. 汇编 Irvine32链接库中一些过程函数的使用说明

    Irvine32链接库过程的使用说明 CloseFile 关闭文件 mov eax, fileHandle call CloseFile Clrscr 清屏 call WaitMsg call Clr ...

  2. 了解“预编译、编译、汇编、链接”这四个过程对你有很大帮

    转自:胡薇 了解"预编译.编译.汇编.链接"这四个过程对你有很大帮助-电子发烧友网 如有侵权,告知立马删除 补充:C语言条件编译及编译预处理阶段 - Rusty's code - ...

  3. 静态链接库,动态链接库【滴水逆向三期48笔记】

    在开发过程中,我们通常会有很多函数,需要多次使用或在不同的程序中使用该函数,也有可能我们会将我们写好的函数给别人使用,但是我们又不想给他源代码,毕竟代码是我们花了很多功夫写出来的,那么我们如何不发给其 ...

  4. x86汇编_CALL和RET指令及过程调用嵌套_笔记_20

    CALL指令先把将来要返回的地址放入堆栈,再把即将被执行的过程的地址复制到指针寄存器上,当这个过程执行完要返回时,用RET指令将堆栈中存放的原来的地址放回指针寄存器上. CPU下一步执行哪些内容,是由 ...

  5. VC的静态链接库 动态链接库

    1.什么是静态连接库,什么是动态链接库         静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了. ...

  6. rust 使用 ffi 调用 C 静态链接库

    创建build.rs //build.rs extern crate dunce; use std::{env, path::PathBuf}; fn main() { let library_nam ...

  7. c语言编译过程详解,预处理,编译,汇编,链接(干货满满)

    楔子 我们在各自的电脑上写下代码,得明白我们代码究竟是如何产生的,不想了解1,0什么的,但这几个环节必须掌握吧. 我们的代码会经过这4个环节,从而形成最终文件,c语言作为编译语言,用来向计算机发出指令 ...

  8. GCC编译过程与动态链接库和静态链接库

    1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...

  9. 从C源代码到可执行文件的四个过程:预处理、编译、汇编、链接

    从C源代码到可执行文件的四个过程:预处理.编译.汇编.链接 总览 我们将在Linux操作系统中,以C语言的Hello World程序为例,用gcc编译器分步执行这四个步骤. 我们有再熟悉不过的Hell ...

最新文章

  1. aov建立Java模拟,数据结构之---C语言实现拓扑排序AOV图
  2. sentinel 官方文档_Sentinel控制台监控数据持久化到MySQL数据库
  3. 屏幕滑动_Appium滑动引导页swipe函数
  4. MT6580启动流程
  5. [机器学习笔记] Note1--机器学习简介
  6. Oracle 20c 新特性:Online SecureFiles Defragmentation 在线的 LOB 碎片整理
  7. 《流浪地球》内地票房超《红海行动》北美上映11天成绩不俗
  8. linux 常见命令 cp,Linux 常用命令之cp,一个可以煮饭的工具;
  9. java url拦截器框架_使用Spring Interceptor实现URL访问校验
  10. visio网络拓扑图 下载_Visio2019软件下载及安装教程
  11. 让程序员过年回家包压岁钱不心痛的好办法|v3.11.0上线!
  12. 保活 进程唤醒_Android 8.0以上系统应用如何保活
  13. (转载)深入了解iOS中的OOM(低内存崩溃)
  14. 2023年湖北武汉建设厅特种工架子工证怎么报名?报考条件?启程别
  15. 《2022中国企业数字化办公创新与实践产业研究报告》附下载丨三叠云
  16. 人体存在感应雷达应用,智能马桶自动响应,低功耗雷达感应模块
  17. Access 2007技巧 “伊妹儿”数据采集
  18. 混合云解决方案:统一化、简化、创新化
  19. 简历模板、公考、考研、pmp证书、PPT模板等一应俱全
  20. SandcastleHelpFileBuilder文档生成

热门文章

  1. UCT格式转换成CST格式
  2. vscode常用插件大全
  3. 两种取消微信接收文件只读属性方法
  4. TI am335x OMAP MUX configure
  5. 思杰(Citrix)南京笔试(暑期实习)
  6. Java 局域网IP地址扫描
  7. Windows开发基础知识
  8. Oracle修改check约束的sql语句
  9. mysql修改数据库日期_修改sql数据库日期
  10. java 统计文章中每个单词出现的次数