在proc為首址的位元組儲存區中存放著一段彙編源程式,最後以ctrl-z即』^z』, 其ascii碼為1ah作為結束標誌
試編寫程式,統計 「mov」 出現的次數, 並將統計結果儲存到 字變數num中
每次比較乙個byte的匯程式設計序
.386
stack segment use16 stack
db 100 dup(0)
stack ends
data segment use16
num dw 0
prog db "mov ax, data", 0dh, 0ah
db "mov ds, ax", 0dh, 0ah
db "mov ax, 0", 0dh, 0ah
db "mov bx, 2", 0dh, 0ah
db "lea si, mmov", 0dh, 0ah
db "add ax, bx", 0dh, 0ah
db "mov momov[si], ax", 0dh, 0ah, 1ah
data ends
code segment use16
assume cs:code, ds:data, ss:stack
main:
mov ax, data
mov ds, ax
mov si, 0
lopa:
cmp prog[si], 1ah
je exit
cmp prog[si], 'm'
jne next
cmp prog[si] + 1, 'o'
jne next
cmp prog[si] + 2, 'v'
jne next
add num, 1
add si, 2
;尋找成功,跳過ov,繼續尋找
next:
inc si
jmp lopa
exit:
mov ah, 4ch
int 21h
code ends
end main
.386
stack segment use16 stack
db 100 dup(0)
stack ends
data segment use16
num dw 0
prog db "mov ax, data", 0dh, 0ah
db "mov ds, ax", 0dh, 0ah
db "mov ax, 0", 0dh, 0ah
db "mov bx, 2", 0dh, 0ah
db "lea si, mmov", 0dh, 0ah
db "add ax, bx", 0dh, 0ah
db "mov momov[si], ax", 0dh, 0ah, 1ah
data ends
code segment use16
assume cs:code, ds:data, ss:stack
main:
mov ax, data
mov ds, ax
mov si, 0
lopa:
cmp prog[si], 1ah
je exit
cmp prog[si], 'm'
jne next
cmp word ptr prog[si + 1], 'vo'
jne next
addnum, 1
add si, 2 ;尋找成功,跳過ov,繼續尋找
next:
inc si
jmp lopa
exit:
mov ah, 4ch
int 21h
code ends
endmain
注意是和 vo 進行比較, x86使用的時候小端儲存【資料的高位元組在高位址】。 將普通表轉變為分割槽表
oracle的普通表沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,下面介紹三種效率比較高的方法,並說明它們各自的特點。方法一 利用原表重建分割槽表。步驟 sql create table t id number primary key,time date 表已建立。sql...
將普通表轉變為分割槽表
oracle的普通表沒有辦法通過修改屬性的方式直接轉化為分割槽表,必須通過重建的方式進行轉變,下面介紹三種效率比較高的方法,並說明它們各自的特點。方法一 利用原表重建分割槽表。步驟 sql create table t id number primary key,time date 表已建立。sql...
ScriptCS 將C 轉變為指令碼語言
scriptcs支援開發者使用簡單的文字編輯器編寫c 應用,並通過roslyn執行編譯,使用nuget進行包管理。windows azure sdk團隊的專案經理glenn block啟動了scriptcs專案,它是乙個嘗試將c 變成指令碼語言的業餘專案。開發者能夠利用其c 知識,使用簡單的文字編輯...