汇编语言-013(DAS 、DAA与DAS、QWORD类型用SBB借位减法、编写指令将AX符号扩展到EAX,不能使用CWD、用SHR和条件判断指令将AL循环右移一位、SHLD、压缩十进制转换)

1:DAS : SUB或SBB在AL中生成二进制结果,DAS(减法后的十进制调整)转压缩十进制格式

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROC;计算85-48mov bl,48hmov al,85hsub al,bl   ;AL=3Dhdas         ;AL = 37h(调整后的结果)INVOKE ExitProcess,0
main ENDP
END main

2:DAA_DAS : DAA与DAS将进位标志位设1的情况

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROCmov al,56hadd al,92h      ;AL=E8hdaa             ;AL =48  ,CF = 1 当压缩十进制加法的和数大于99,进位为1mov al,56hsub al,92h     ;AL = C4hdas            ;AL = 64h ,CF=1  ;当从小的压缩十进制数减去大的压缩十进制整数,进位为1,也就是表示是负数INVOKE ExitProcess,0
main ENDP
END main

3:QWORD类型用SBB借位减法进行计算

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.data
val1 QWORD 20403004362047A1h
val2 QWORD 055210304A2630B2h
result QWORD 0.code
main PROCmov ecx,8mov esi,0mov edi,0clc
top:mov al,BYTE PTR val1[esi]sbb al,BYTE PTR val2[esi]mov BYTE PTR result[edi],alinc esiinc ediloop topINVOKE ExitProcess,0
main ENDP
END main

4:编写指令将AX符号扩展到EAX,不能使用CWD

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROCmov ax,0123hmov bx,axsar ax,15shl eax,16mov ax,bxINVOKE ExitProcess,0
main ENDP
END main

5:不用循环移位指令,用SHR和条件判断指令将AL循环右移一位

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROCmov al,11hshr al,1jnc quitor al,80h
quit:INVOKE ExitProcess,0
main ENDP
END main

6:编写一条SHLD指令,把AX寄存器的最高位移入DX的最低位,DX左移一位

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROCmov ax,8111hmov dx,1110hshld dx,ax,1INVOKE ExitProcess,0
main ENDP
END main

7:编写指令,把字节数组右移一位

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.data
byteArray BYTE 81h,20h,33h.code
main PROCmov ecx,(LENGTHOF byteArray) - 1mov esi,OFFSET byteArray
L1:mov ax,WORD PTR[esi]shr ax,1mov BYTE PTR[esi],alinc esiloop L1shr BYTE PTR[esi],1INVOKE ExitProcess,0
main ENDP
END main

8: 编写指令,把字数组左移一位

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.data
wordArray WORD 810Dh,0C064h,93ABh.code
main PROCmov ecx,(LENGTHOF wordArray )-1mov esi,(OFFSET wordArray )+(2 * TYPE WORD)
L1:mov ax,[esi - TYPE WORD]shld WORD PTR[esi],ax,1sub esi,TYPE WORDloop L1shl WORD PTR[esi],1INVOKE ExitProcess,0
main ENDP
END main

9:编写过程,把8位无符号二进制数值显示为十进制式,用AL接收二进制数值,其取值范围为十进制0到99

include Irvine32.inc.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.code
main PROCmov al,65call showDecimal8INVOKE ExitProcess,0
main ENDPshowDecimal8 PROCaam or ax,3030hmov bx,axshr ax,8call WriteCharmov ax,bxcall WriteCharret
showDecimal8 ENDP
END main

10:压缩十进制转换,将4字节的压缩十进制整数转为ASCII十进制数字串,向过程传递压缩数字和存放ASCII数字的缓冲地址

.386
.model flat,stdcall.stack 4096
ExitProcess PROTO,dwExitCode:DWORD.data
val1 DWORD 12345678h
result  BYTE 8 DUP(0).code
main PROCmov eax,val1mov edi,OFFSET resultcall PackedToAscINVOKE ExitProcess,0
main ENDPPackedToAsc PROCmov ecx,8
L1:rol eax,4mov bl,aland bl,0Fhor bl,30hmov BYTE PTR[edi],blinc ediloop L1ret
PackedToAsc ENDP
END main

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

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

相关文章

python程序执行时间_用于在Python中查找程序执行时间的程序

python程序执行时间The execution time of a program is defined as the time spent by the system to execute the task. As we all know any program takes some execution time but we dont know how much. So, dont worry, in this tutorial we will learn it by using the…

公约数和公倍数

描述 小明被一个问题给难住了&#xff0c;现在需要你帮帮忙。问题是&#xff1a;给出两个正整数&#xff0c;求出它们的最大公约数和最小公倍数。 输入 第一行输入一个整数n&#xff08;0< n<10000)&#xff0c;表示有n组测试数据; 随后的n行输入两个整数i,j&#xff08;…

.net 笔记尝试(二)

.NET笔试题集&#xff08;二&#xff09; 1.using关键字有什么用&#xff1f;什么是IDisposable&#xff1f; using可以声明namespace的引入&#xff0c;还可以实现非托管资源的释放&#xff0c;实现了IDisposiable的类在using中创建&#xff0c;using结束后会自动调用该对象的…

网上照片之博客照片与网店照片拍摄心得

本文选自《非常摄影手记&#xff1a;2天玩转单反相机》一书 让照片在博客上更热的心得 1.有时美好的不仅是照片&#xff0c;还有拍摄照片的过程。尽量真实全面地记录自己的摄影过程&#xff0c;展示最感人的自我。 2.不要急功近利&#xff0c;不想成“名博”的博主不是好博主&a…

string.length_C.中的String.Length属性示例

string.lengthC&#xff03;String.Length属性 (C# String.Length property) String.Length property is used to get the total number of characters in the string object (length of the string); it calls with this string and returns the total number of characters. …

汇编语言-014(编写过程的应用、伪指令LEA、ENTER、LEAVE、LOCAL、递归函数、INVOKE、ADDR、PROC伪指令声明过程)

1&#xff1a;编写过程&#xff0c;仅用移位和加法&#xff0c;实现任意32位符号数与EAX相乘 include Irvine32.inc.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.code main PROC mov eax,80mov ebx,53call BitwiseMultiplycall WriteDecINVOKE ExitProcess,0 main ENDP;EA…

从键盘输入一个字符,判断其是不是大写字母,如果是则请输出这个大写字母,如果不是请输出“这不是一个大写字母”的英文信息(要求:能连续输出直到输出“#”结束)。

从键盘输入一个字符&#xff0c;判断其是不是大写字母&#xff0c;如果是则请输出这个大写字母&#xff0c;如果不是请输出“这不是一个大写字母”的英文信息&#xff08;要求&#xff1a;能连续输出直到输出“#”结束&#xff09;。 P155 例4.13 DATA SEGMENT STR DB 0DH,0…

再谈angularjs DI(Dependency Injection)

在前面已经介绍了关于angularjs&#xff0c;以及扩展了一些jQuery ui的一些组件为angularjs的directive。在这里应进口007 在上篇留言我们来看看在angularjs中的DI特性。 DI&#xff1a;依赖注入&#xff0c;是一种软件设计模式&#xff0c;应DIP依赖倒置原则&#xff0c;描述组…

Access sql语句创建表及字段类型

Create TABLE 测试表 ( 文本255 VARCHAR NOT NULL, 文本20 VARCHAR(20) NOT NULL, 日期时间 DATETIME, 数字1 BYTE, 数字2 SMALLINT, 数字4 INTEGER, 布尔 BIT, 自动编号 COUNTER(10, 5) CONSTRAINT PK_TVIPLevel26 PRIMARY KEY, 小数 NUME…

c语言getc函数_C语言中的getc()函数与示例

c语言getc函数C语言中的getc()函数 (getc() function in C) Prototype: 原型&#xff1a; int getc(FILE *filename);Parameters: 参数&#xff1a; FILE *filenameReturn type: int 返回类型&#xff1a; int Use of function: 使用功能&#xff1a; In the file handling…

汇编语言-015(PROC伪指令定义参数方式、EXTERNDEF、INCLUDE 、EXTERN 、INVOKE、PROC、PROTO 、MOVSB 、MOVSD 、CMPSD )

1&#xff1a;使用PROC伪指令定义参数方式不通过寄存器传参&#xff0c;计算数组之和 .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data array DWORD 10000h,20000h,30000h,40000h,50000h theSum DWORD ?.code ArraySum PROC USES esi ecx,ptr…

编写计算表达式(X-Y+25)/Z的值得程序,要求将其商和余数分别放在A、B单元中。(设X和Y是32位无符号数,A、B和Z是16位无符号数,不考虑溢出情况。)

编写计算表达式&#xff08;X-Y25&#xff09;/Z的值得程序&#xff0c;要求将其商和余数分别放在A、B单元中。&#xff08;设X和Y是32位无符号数&#xff0c;A、B和Z是16位无符号数&#xff0c;不考虑溢出情况。&#xff09; P151 例4.8 汇编思路&#xff1a;首先在DATA段定…

《深入浅出WPF》笔记——绑定篇(一)

上一节&#xff0c;有记录写到&#xff1a;在WPF里&#xff0c;数据驱动UI&#xff0c;数据占核心地位&#xff0c;UI次之。怎么恢复数据的核心地位&#xff0c;那就要先了解一下Binding。 一、Binding 基础 1.1WPF中Data Binding的带来的方便 在设计架构的时间&#xff0c;大家…

你的代码完成了吗?(之二)——可维护性和规范性

二. 可维护性和规范性 对于代码来说&#xff0c;这两个属性其实是紧密相连的。什么样的代码最好维护呢&#xff1f;当然是规范的代码了。再差的规范也要比没有规范强得多。 之前做对日项目的时候&#xff0c;日本人对于“规范”这个东西&#xff08;他们称之为开发规约&#xf…

c语言feof函数_使用示例的C语言中的feof()函数

c语言feof函数C语言中的feof()函数 (feof() function in C) Prototype: 原型&#xff1a; int feof(FILE* filename);Parameters: 参数&#xff1a; FILE *filenameReturn type: int(0 or 1) 返回类型&#xff1a; int(0或1) Use of function: 使用功能&#xff1a; In C l…

5种经典排序算法,每个程序员都应该知道

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 有没有想过当您应用从低到高、从高到低或按字母顺序等过滤器时&#xff0c;亚马逊或任何其他电子商务网站中的产品如何排序&#xff1f;排序算法对于此类网站起着至…

汇编语言-016(SCASB 、STOSB 、LODSD 、数组中的取值、二维数组操作、冒泡排序和二分查找、CMPSW )

1&#xff1a; SCASB : (字节)将AL的值与EDI寻址的一个字比较。进行在一个字符串检索特定的字符 .386 .model flat,stdcall.stack 4096 ExitProcess PROTO,dwExitCode:DWORD.data alpha BYTE "ABCDEFGH",0.code main PROCmov edi,OFFSET alpha ;EDI指向字符串mov …

编写一个汇编语言程序,将字符串Hello World中的全部小写字母转换为大写字母,并存放回原地址处。

编写一个汇编语言程序&#xff0c;将字符串"Hello World"中的全部小写字母转换为大写字母&#xff0c;并存放回原地址处。 P176 4.10 编程思路&#xff1a;首先DATA段中&#xff0c;定义string存放字符串"Hello World"&#xff0c;LEN为字符串string长度…

在Python中使用OpenCV(CV2)对图像进行边缘检测

Modules used: 使用的模块&#xff1a; For this, we will use the opencv-python module which provides us various functions to work on images. 为此&#xff0c;我们将使用opencv-python模块&#xff0c;该模块为我们提供了处理图像的各种功能。 Download opencv-pytho…

需保留小数点两位,但同时不要小数点后多余0的前后台代码实现

今天碰到一个需求。关于小数点的处理&#xff0c;看起来非常简单的事情&#xff0c;却花了一定时间做了一些试验。最后简单总结一下&#xff0c;以便备忘。 需求简化一下表达是这样的&#xff1a; 有A、B两列&#xff0c;A/BC。这3列在数据库中都以decimal存放。 在应用中&…