日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Intel汇编程序设计-整数算术指令(下)

發(fā)布時間:2025/6/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Intel汇编程序设计-整数算术指令(下) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

7.5 ?擴展加法和減法

? ? 擴展精度的假發(fā)和減法是指任意尺寸大小數(shù)字的加法和減法。例如要求你寫一個C++程序,把兩個1024位的整數(shù)相加,解決方案可不是那么簡單!但在匯編語言中,ADC(帶進位加)指令和SBB(帶進位減)指令非常適合于解決此類問題。

7.5.1 ?ADC指令

ADCAddWithCarry)指令把源操作數(shù)、目的操作數(shù)以及進位標志相加。指令格式與MOV指令是一樣的:

ADC ?reg ,reg

ADC ?mem ,reg

ADC ?reg ,mem

ADC ?mem ,imm

ADC ?reg ,imm

例如,下面的指令把兩個8位整數(shù)相加(FFh+FFh),16位解雇01FEh被存放在DL:AL中:

mov ?dl ,0

mov ?al ,0FFh

add ??al ,0FFh ??;AL = FE

adc ??dl ,0 ?????;DL = 01

?

兩個32位整數(shù)相加(FFFFFFFFh+FFFFFFFFh)相加,在EDX:EAX中存放64位的和0000001FFFFFFFEh:

mov ?edx ,0

mov ?eax ,0FFFFFFFFh

add ??eax ,0FFFFFFFFh

adc ??edx ,0


7.5.2 ?擴展加法的例子

? ? 下面的Extended_Add過程把兩個任意相同尺寸的整數(shù)相加,程序使用一個循環(huán)把沒對雙字相加,保存進位標志,并是僅為標志參與后面的雙字的假發(fā)運算:

?

? ? 下面摘自ExtAdd.asm的程序片段調(diào)用了Extended_Add過程,例子中傳遞的是兩個64位整數(shù)。注意特別分配了額外的雙字節(jié)以保存可能出現(xiàn)的進位值:

?

果真發(fā)生了進位,注意一個問題,就是比如op1?QWORD 0A2B2A40674981234h

eax ?= ?OFFSET op1

那么[eax] 74981234h ?[eax+4]0A2B2A406。一開始我在最后輸出的時候沒看懂,后臺調(diào)試的時候想起來了。

?

7.5.3 ?SBB指令

? ?SBBsubtract with borrow)指令從墓地操作數(shù)中減去源操作數(shù)和進位標志的值。指令允許你的操作與ADC是相同的。

下面的例子是執(zhí)行64位的減法,把EDX:EAX設(shè)置為0000000100000000h并從中減去1,程序首先減去低32位值,進位標志將被設(shè)置,然后再減去高32位和進位標志值:

mov ?edx ,1 ???;高半部分

mov ?eax ,0 ???;低半部分

sub ??eax , 1 ??;減去1

sbb ??edx ,0 ??;減去1的高半部分(0

EDX:EAX 中的64位差值是00000000FFFFFFFFh

7.6 ?ACCII和未壓縮十進制算術(shù)指令

? ?到現(xiàn)在為止,本書講述的整數(shù)算術(shù)指令都是處理二進制數(shù)值的,盡管CPU是以二進制算術(shù)方式進行運算的,但是也能處理ASCII十進制數(shù)串的算術(shù)運算。后者可以方便地有用戶輸出并在控制臺窗口中顯示,無需轉(zhuǎn)換成二進制數(shù)值。假設(shè)程序需要用戶輸入兩個數(shù)字并把他們相加,下面是一個輸出樣例,其中用書輸入了34021256

???Enter first numbers: ???3402

???Enter second number: ?1256

???The sum is: ??????????4658

在計算和顯示數(shù)字的時候有兩種選擇:

1.把兩個操作數(shù)轉(zhuǎn)換成二進制數(shù)值并相加,然后把和從二進制數(shù)轉(zhuǎn)換成ASCII碼數(shù)字串的格式化后顯示。

2.連續(xù)地把沒對ASCII數(shù)字直接相加,這樣就和是ASCII數(shù)字串,可以直接在屏幕上顯示。

第二種選擇要求在對ASCII數(shù)字相加后使用特殊指令來調(diào)整其和,指令集中有4條指令可以處理這一類的ASCII加法、減法、乘法和除法:


mov ???ah ,0

mov ???al ,’8’?????;AX = 0038h

add ????al,’2’?????;AX = 006Ah

aaa ?????????????;AX = 0100h(結(jié)果的ASCII碼調(diào)整)

or ?????ax ,3030h ;AX = 3130h=’10’(轉(zhuǎn)換成ACSCII)

AAS AAM AAD也是如此。

7.7.1 ?DAA指令

DAA指令把ADDADC指令執(zhí)行后AL中的二進制數(shù)轉(zhuǎn)換成壓縮的十進制數(shù)格式。

mov ?al ,35h

add ?al ,48h ???;AL = 7Dh

daa ???????????;AL = 83h(調(diào)整結(jié)果)

7.7.2 ?DAS指令

DASdecimal adjust after subtraction)指令將SUBSBB指令執(zhí)行后AL中的二進制轉(zhuǎn)換成壓縮的十進制格式。

mov bl ,48h

mov al ,85h

sub al ,bl ??;AL = 3Dh

das ??????;AL = 37h(調(diào)整結(jié)果)

7.8 本章小結(jié)

?

?

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Intel汇编程序设计-整数算术指令(下)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 自拍偷拍一区二区三区 | 丁香综合网 | 欧美一区二区三区视频 | 国产精品第13页 | 青青草综合视频 | 亚洲精品高清无码视频 | 日韩91av| 国产成人精品a视频一区 | 亚洲精品男人天堂 | 免费成人美女女电影 | 精品在线视频观看 | 亚洲精品人妻无码 | 精品视频在线一区二区 | 亚洲Av无码成人精品区伊人 | 秋霞综合网 | 韩国视频一区二区三区 | 中文字幕一区二区三区人妻四季 | av大片网站 | 香蕉久久夜色 | 黄色在线小视频 | 日韩精品久久一区二区 | 日本成人免费在线视频 | 免费操人视频 | 黄视频在线观看免费 | av性在线 | 日韩色黄大片 | 91久久影院 | 91精品在线看 | 夜夜夜影院 | 日本无遮羞调教打屁股网站 | 国产成人精品亚洲线观看 | 国产综合精品在线 | 日韩一级片网站 | av高清在线 | 欧美影院久久 | 国产精品免费看 | 四虎成人在线视频 | 亚洲精品三区 | 国产第一页在线观看 | 香蕉视频入口 | 日韩福利一区二区 | 日本中文字幕网站 | 一级片免费看视频 | 中文字幕伊人 | 免费三片在线观看网站v888 | 天天舔天天射天天干 | 中文字幕在线免费 | 亚洲欧美专区 | 噼里啪啦免费高清看 | 自偷自拍av | 欧美做受高潮1 | 九色porn | 中文字幕制服诱惑 | 国产九色91 | 啪啪av| 成人性生交大片免费看中文 | 涩涩视频网站在线观看 | 88xx成人永久免费观看 | 亚色中文字幕 | 海角官网 | 狠狠地日| 91日批视频 | 性感美女被爆操 | 亚洲色欲色欲www在线观看 | 丝袜ol美脚秘书在线播放 | 久久99影院 | 午夜久久精品 | 加勒比综合 | 生活片av | 国产一二区在线观看 | 久久久久黄色 | 欧美不卡一二三 | 国产a级片免费看 | 国产中文字幕免费 | 激情文学8888 | 午夜亚洲AV永久无码精品蜜芽 | 日韩精品一区二区三区视频 | 老熟女高潮一区二区三区 | 亚洲尻逼| av毛片在线播放 | 豆花av在线 | 中文字幕日韩一区二区 | 精品国产免费视频 | 超碰激情 | 毛片最新网址 | 91插插插插插插插 | 蜜臀99久久精品久久久久久软件 | 日本在线观看免费 | 欧美日韩视频免费观看 | 国产精品第七页 | 丝袜淫脚 | 天天摸天天碰天天爽天天弄 | 二级毛片在线观看 | 香蕉视频国产 | 少妇69xx| 亚洲欧美校园春色 | 超碰2019| 亚洲国产精品suv | 色老头一区二区 |