匯編語言-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.pswp.cn/news/379320.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379320.shtml
英文地址,請注明出處:http://en.pswp.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存放。 在應用中&…