通用數據傳送指令.
MOV 傳送字或字節.
MOVSX 先符號擴展,再傳送.
MOVZX 先零擴展,再傳送.
PUSH 把字壓入堆棧.
POP 把字彈出堆棧.
PUSHA 把ax,CX,DX,BX,SP,BP,SI,DI依次壓入堆棧.
POPA 把DI,SI,BP,SP,BX,DX,CX,ax依次彈出堆棧.
PUSHAD 把Eax,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次壓入堆棧.
POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,Eax依次彈出堆棧.
BSWAP 交換32位寄存器里字節的順序
XCHG 交換字或字節.( 至少有一個操作數為寄存器,段寄存器不可作為操作數)
CMPXCHG 比較并交換操作數.( 第二個操作數必須為累加器AL/ax/Eax )
XADD 先交換再累加.( 結果在第一個操作數里 )
XLAT 字節查表轉換.
── BX 指向一張 256 字節的表的起點, AL 為表的索引值 (0-255,即
0-FFH) 返回 AL 為查表結果. ( [BX+AL]->AL )
標簽:
MOVSX
MOVZX
PUSH
傳送
上傳時間:
2016-08-17
上傳用戶:13681659100
This routine calls the glpk library to solve a LP/MIP problem. A typical
LP problem has following structure:
[min|max] C x
s.t.
ax ["="|"<="|">="] b
{x <= UB}
{x >= LB}
The calling syntax is:
[XMIN,FMIN,STATUS,EXTRA]=glpkmex(SENSE,C,A,B,CTYPE,LB,UB,... VARTYPE,PARAM,LPSOLVER,SAVE)
標簽:
problem
following
routine
library
上傳時間:
2014-12-01
上傳用戶:changeboy
DATAS SEGMENT
w dw 0
keybuf db 255
db 0
db 255 dup(0) ;定義鍵盤輸入需要的緩沖區
DATAS ENDS
STACKS SEGMENT
db 200 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV ax,DATAS
MOV DS,ax
mov dx,offset keybuf ;用0a號功能,輸入一個字符串
mov ah,0ah ;用回車結束
int 21h
mov dl,0ah ;再進行換行,以便在下一行顯示轉換后的字符串
mov ah,2
int 21h
; push ax
; push dx
; mov dl,cl
; mov ah,02
; int 21h
; pop dx
; pop ax
mov bx,offset keybuf+1 ;取出字符串的字符個數,作為循環的次數
mov cl,[bx]
mov ch,0
mov ax,0
again:
inc bx
mov ax,[w]
push bx
mov bx,16
mul bx
pop bx ;是小寫字母,則轉換為大寫字母
mov [w],ax
mov dl,[bx] ;取出一個字符,
cmp dl,'9'
jbe lab1
cmp dl,'F'
jbe lab2
sub dl,32
lab2: sub dl ,07h
lab1: sub dl,30h
add [w],dx
loop again
mov ax,[w]
mov bx,-1
push bx
mov bx,10
lab3 :mov dx,0
div bx
push dx
cmp ax,0
jnz lab3
lab5: pop dx
cmp dx,-1
jz lab4
add dl,30h
mov ah,02
int 21h
jmp lab5 ;循環,處理完整個字符串
lab4: MOV AH,4CH
INT 21H
CODES ENDS
END START
標簽:
匯編
上傳時間:
2015-04-02
上傳用戶:wcc0310