第6章算数运算指令.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章算数运算指令

80X86CPU提供了完整的加、減、乘、除算術運算指令,可以處理的資料長度為8位元、I6位元或32位元。在作乘、除運算時,如果是「無號數」運算,則使用MUL、DIV指令,如果是「有號數」運算,則使用IMUL、IDIV指令。由於乘、除指令在執行時,耗用太多的時序週期,所以大部份的程式設計師都儘量地避免使用乘、除指令,而改由其它指令完成,如移位、旋轉指令等,移位、旋轉指令將在下一章介紹。 6-1 加法運算指令 ADD (addition)指令:加法運算,將來源運算元加至目的運算元中。 *語法:ADD目的運算元,來源運算元 *說明:ADD指令會將來源運算元與目的運算元相加,再將結果存回目的運算元中。來源運算元可以是立即值、一般暫存器或記憶體變數,目的運算元可以是一般暫存器或記憶體變數,來源運算元與目的運算元的大小必須相同,即同為8位元、16位元或32位元。來源運算元與目的運算元不可以同時為記憶體變數。 ◆格式:1﹒ADD暫存器,立即值 EX:ADD AL,78H 2﹒ADD暫存器,暫存器 EX:ADD BX,AX 3﹒ADD暫存器,記憶體 EX:ADD AL,[BX];中括號表示資料段中BX所指的記憶體。 4﹒ADD記憶體,立即值 EX:ADD [BX],-32 5﹒ADD記憶體,暫存器 EX:ADD [BX],AX ◆範例:MOV AX,1234H MOV BX,5678H ADD BX,AX 結果:AX = 68ACH,BX = 5678H。 ADC (addition with carry)指令:加法運算,將來源運算元與進位旗標CF加至目的運算元中。 *語法:ADC目的運算元,來源運算元 *說明:ADC指令會將來源運算元、目的運算元與進位旗標CF相加,再將結果存回目的運算元中。與ADD指令相同,來源運算元可以是立即值、一般暫存器或記憶體變數,目的運算元可以是一般暫存器或記憶體變數,來源運算元與目的運算元的大小必須相同,即同為8位元、16位元或32位元。來源運算元與目的運算元不可以同時為記憶體變數。 ◆格式:1﹒ADC暫存器,立即值 2﹒ADC暫存器,暫存器 3﹒ADC暫存器,記憶體 4﹒ADC記憶體,立即值 5﹒ADC記憶體,暫存器 範例:STC ;set carry flag 設定進位旗標CF=1。 MOV AX,1234H MOV BX,5678H ADC AX,BX 結果:AX = 68ADH,BX = 5678H,CF = 1。 INC (increment)指令:將暫存器或記憶體的內容遞增加1。 *語法:INC目的運算元 *說明:INC指令會將目的運算元加1,再將結果存回目的運算元中。必須注意的是INC指令並不會影響進位旗標 CF,目的運算元可以是一般暫存器或記憶體變數,其大小可以是8位元、16位元成32位元。 ◆格式:1﹒INC 暫存器 2﹒INC 記憶體 範例:MOV AX,1000H INC AX 結果:AX = 1001H 。 6-2 減法運算指令 SUB (subtraction)指令:目的運算元減去來源運算元,再將結果存回目的運算元中。 *語法:SUB目的運算元,來源運算元 *說明:SUB指令會將目的運算元減去來源運算元,再將結果存回目的運算元中。來源運算元可以是立即值、一般暫存器或記憶體變數,目的運算元可以是一般暫存器或記憶體變數,來源運算元與目的運算元的大小必須相同,即同為8位元、16位元或32位元。來源運算元與目的運算元不可以同時為記憶體變數。 ◆格式:1﹒SUB暫存器,立即值 2﹒SUB暫存器,暫存器 3﹒SUB暫存器,記憶體 4﹒SUB記憶體,立即值 5﹒SUB記憶體,暫存器 ◆範例:MOV AX,6789H MOV BX,1234H SUB BX,AX 結果:AX = 5555H,BX = 1234H SBB (subtraction with borrow)指令:目的運算元減去來源運算元及借位(CF),再將結果存回目的運算元中。 *語法:SBB目的運算元,來源運算元 *說明:SBB指令會將目的運算元減去來源運算元及借位(CF),再將結果存回目的運算元中。與SUB指令相同,來源運算元可以是立即值、一般暫存器或記憶體變數,目的運算元可以是一般暫存器或記憶體變數,來源運算元與目的運算元的大小必須相同,即同為8位元、16位元或32位元。來源運算元與目的運算元不可以同時為記憶體變數。 ◆格式:1﹒SBB暫存器,立即值 2﹒SBB暫存器,暫存器 3﹒SBB暫存器,記憶體 4﹒SBB記憶體,立即值 5﹒SBB記憶體,暫存器 範例:STC ;set car

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档