ARM assembly
1. BIC(位清除)
指令对 Rn 中的值 和 Operand2 值的反码按位进行逻辑“与”运算
ex:
BIC R0, R0, #0xF0000000 //将R0高4位清0
BIC R1, R1, #0x0F //将R1低4位清0
2. RSB 反向减法
RSB(反向减法)指令可从 Operand2 中的值减去 Rn 中的值
ex:
RSB r4,r4, #1280 //R4=1280-R4
RSB R4, R0, #0×46 //R4=0x46-R0
2010年11月9日 星期二
2009年10月2日 星期五
assembly 入門中 --- (2)
assembly 入門中 --- (2)
【xlabt 查表】
XLAT與XLATB是同一個指令,
原文意思是Translate by table look up,
也就是藉由查表轉換的意思。
它的來源運算元固定為DS:BX+AL,
而目的運算元固定為AL,故指令敘述時不需要寫出運算元。
例:
.model small
.code
begin:
mov ax,@data;
mov ds,ax;
mov bx,offset table
mov al,6;
xlatb;
mov dl,al;
mov ah,02h;
int 21h;
mov ah,4ch;
int 21h;
.data
table db '123456789'
.stack
end begin
結果:
印出 7
ref :
資料轉移指令
【xlabt 查表】
XLAT與XLATB是同一個指令,
原文意思是Translate by table look up,
也就是藉由查表轉換的意思。
它的來源運算元固定為DS:BX+AL,
而目的運算元固定為AL,故指令敘述時不需要寫出運算元。
例:
.model small
.code
begin:
mov ax,@data;
mov ds,ax;
mov bx,offset table
mov al,6;
xlatb;
mov dl,al;
mov ah,02h;
int 21h;
mov ah,4ch;
int 21h;
.data
table db '123456789'
.stack
end begin
結果:
印出 7
ref :
資料轉移指令
2009年10月1日 星期四
Debian下用dosemu模擬dos環境
Debian下用dosemu模擬dos環境
Debian lenny
1. # aptitude install dosemu (不能安裝的話,在sources.list加入:deb http://ftp.de.debian.org/debian sid main contrib)
2. # dosemu (需root才行)
3. 將masm需要的執行檔 masm.exe,link.exe,debug.exe,ml.exe,ml.err放入/root/.dosemu/drivers/d/bin/
以上的檔案可以在這裡Download
(debug,XP下就有;在system32目錄下)
(看masm的版本吧,目前我用masm5.x的,就不需ml.*)
大致如此…吧 = =|||
(比較有問題的會是masm的來源,之前去官網DL最新版10.x for Win,但…不會用 =.=)
ref:
1. linux中使用masm
2. 許多不錯的masm相關網站(寶物很多)
Debian lenny
1. # aptitude install dosemu (不能安裝的話,在sources.list加入:deb http://ftp.de.debian.org/debian sid main contrib)
2. # dosemu (需root才行)
3. 將masm需要的執行檔 masm.exe,link.exe,debug.exe,ml.exe,ml.err放入/root/.dosemu/drivers/d/bin/
以上的檔案可以在這裡Download
(debug,XP下就有;在system32目錄下)
(看masm的版本吧,目前我用masm5.x的,就不需ml.*)
大致如此…吧 = =|||
(比較有問題的會是masm的來源,之前去官網DL最新版10.x for Win,但…不會用 =.=)
ref:
1. linux中使用masm
2. 許多不錯的masm相關網站(寶物很多)
訂閱:
文章 (Atom)