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

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

  1. 每天一道LeetCode-----有序数组循环右移n位后,寻找最小值,数组中可能包含重复元素

    Find Minimum in Rotated Sorted Array II 原题链接Find Minimum in Rotated Sorted Array II 一个有序数组循环右移n位,找到右 ...

  2. 假设有一个字类型的数值arry1,试编写程序统计arry1数值及其后若干数值,在字单元中存储时每个数据中含“1”数据位的个数,并将统计结果保存在res1数组中。数据段的代码定义如下: data seg

    假设有一个字类型的数值arry1,试编写程序统计arry1数值及其后若干数值,在字单元中存储时每个数据中含"1"数据位的个数,并将统计结果保存在res1数组中.数据段的代码定义如下 ...

  3. c语言将数组元素循环右移k位,把一个含有N个元素的数组循环右移K位

    普通解法: 可以每次将数组中的元素右移一位,循环K次.每个元素右移N位后都会回到自己的位置上.因此,如果K > N,右移K-N之后的数组序列跟右移K位的结果是一样的.进而可得出一条通用的规律:右 ...

  4. 数组:如何把一个数组循环右移K位

    问题描述: 假设要把数组12345678右移2位,变为78123456. 分析: 方法一: 比较移位前后数组序列的形式,不难看出,其中有两段序列的顺序是不变的,即就是 78 和 123456, 可以把 ...

  5. Python学习2 条件判断语句if,循环语句for while

    顺序,分支,循环结构 条件判断语句if 1)if-else- 2) if-elif-else 注意: 1)python中不支持switch-case语句 2)注意缩进! 3)区间范围内允许连续比较: ...

  6. python-if条件判断与while/for循环

    条件判断if 让计算机像人一样,能判断是非对错,根据条件做一些事情. if ''' ------ if代码结构:------- if 条件:代码体tips:同一缩进范围内的代码被视作同一代码体,pyt ...

  7. 5、条件判断语句和while循环语句

    条件判断和while循环 条件判断 条件判断语句(if语句) input() 函数 if-else语句 if-elif-else 语句 循环控制 while语句 break和continue whil ...

  8. C语言 条件判断语句、while循环、switch语句

    浮点数 注意事项:整型数字除于整数只会得到整数.如果要想得到浮点数,分母或分子要至少有一个为浮点数. 表达式 一个表达式是一系列运算符和算子的组合,用来计算一个值 运算符(operator)是指进行运 ...

  9. C语言 实现n*n的方阵,循环右移m位

    要求编写程序,将给定n×n方阵中的每个元素循环向右移m个位置.输入第一行给出两个正整数m,n.接下来一共n行,每行n个整数,表示一个n阶的方阵. 输入样例: 2 3 1 2 3 4 5 6 7 8 9 ...

最新文章

  1. [转]一个典型的软件项目的WBS评析
  2. BZOJ 2535:NOI 2010 航空管制
  3. GET_GLOBALS_FROM_SLVC_FULLSCR
  4. ORACLE TEXT DATASTORE PREFERENCE(三)
  5. LiveVideoStack线上分享第四季(八):实时远程医学影像服务质量保障与网络优化...
  6. python回归预测例子_案例实战 | 逻辑回归实现客户流失预测(附Python代码与源数据)...
  7. JS 常用函数二(改变HTML样式)
  8. 爱立信将携手DOCOMO和英特尔构建5G测试环境
  9. linux运维实战练习--用户和组管理各命令的使用
  10. 1000道Python题库系列分享十一(9道)
  11. AJAX设置光标离开自动提交,Ajax自动提交和刷新页面
  12. birt java api_「Birt」birt api生成报表 | 学步园
  13. s和jquery设置disabled属性为true使按钮失效
  14. 控制系统数字仿真与CAD-第二次实验-附完整代码
  15. elasticjob接入方式和管理端使用
  16. 凯立德导航android历史版本,凯立德导航升级2020版
  17. 量子计算机 因数分解,中国实现绝热量子质因数分解 或建量子计算机
  18. 转 适合wince初学者的一些 知识
  19. 九号公司第三季营收28亿:小米定制产品分销收入3亿同比降59%
  20. 街景地图工作是如何工作的

热门文章

  1. 浏览器滚动条 --- 自定义“衣裳”
  2. 使用CSS实现无滚动条滚动
  3. 关于软件测试学习心得
  4. 二叉树的递归遍历与复制
  5. Delphi 关键 重启 注销
  6. JAVA_Collection容器
  7. POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)
  8. OSPF路由器建立全毗邻关系的状态转换过程
  9. 百度面试题:从输入url到显示网页,后台发生了什么?
  10. 敲代码括号技巧_理解代码块概念,养成良好编程习惯 | 亲子课堂 第 3 课