2017-05-05 87 views
-4

首先,我是彙編語言的初學者,現在我正在學習微處理器。我們編寫了一些小程序。但是,我正在研究名爲「Basic Encryption Scheme(BES)」的程序。這個想法是切換用戶輸入的字符的低位。然後,從1-9輸入並將其添加到切換的字符中。最後,打印出來。例如,如果輸入字符是A並且輸入鍵值是6.程序應該將ASCIl值A,01000001,切換位[o:o],產生01000000,然後添加輸入值鍵6。最終輸出的字符將是01000110.它是ASCII值F如何切換匯編語言中低位的位8086

可喜的是,我編程幾乎一切: =>予編程的需要多於一個字符,並將其保存在消息[SI] =>我編寫了一個消息,輸入密鑰值並將其轉換爲註冊並保存在bl =>我編寫了一個鱈魚,它將從[si]和[di]中取出字符串並將它們打印在屏幕上。

正是我需要一個應用基本加密方案的方法,通過從[si]和從(bl)的密鑰。

謝謝

+1

['xor'](http://x86.renejeschke.de/html/file_module_x86_id_330。html),['add'](http://x86.renejeschke.de/html/file_module_x86_id_5.html)(請記住''z'+ 6 == 128',所以你應該決定,如果結尾的字母旋轉回A/a(即''Z'->'B'爲2,'z'->'b'爲2 =>有點複雜的邏輯),或者如果你將在一些「有效範圍」 32-122,所以'Z'->'a'爲7,'z'->''爲1)) – Ped7g

+2

如果你做了所有的編程,你應該有一些代碼給我們看。也許一個[MCVE],有一兩個評論顯示你被卡住的部分。 –

+0

無需從z旋轉回a,我想要有效範圍 –

回答

2

上:

採取串從[SI]

mov dl, [si] 

觸發位[O:O]

xor dl, 1 

添加的輸入值鍵

add dl, bl 

打印它們在屏幕上。

mov ah, 02h 
int 21h 

既然你已經

程序性按摩的需要多於一個字符,並將它們保存在[SI]

你會保存在這個字符串的長度一些內存位置或寄存器。我認爲CX註冊將是一個很好的地方。

處理整個字符串,那麼,您:

  • 增量指針SI
  • 遞減長度CX
  • 如果長度不爲零,就從頂部重複:
+1

++,您應該享受按摩程序 –