2017.4.23;*******主體*****==;name :showstr
;fuction: 在指定的位置,用指定的顏色,顯示乙個用0結束的字串
;test code: 在螢幕的8行3列,用綠色顯示data段中的字串
;eg:->init
; mov dh,8 8行
; mov dl,3 3列
; mov cl,2 字元屬性 2->黑底綠色無高亮無閃爍
; mov ax,data
; mov ds,ax 字串段位址
; mov si,0 字串起始位址
assume cs:codesg
stack segment
db 128 dup(?)
stack ends
data segment
db 'hello world',0
data ends
codesg segment
start:
`mov ax,stack
mov ss,ax
mov sp,80h
mov dh,8 ;8行
mov dl,3 ;3列
mov cl,2 ;字元屬性 2->黑底綠色無高亮無閃爍
mov ax,data
mov ds,ax ;字串段位址
mov si,0 ;字串起始位址
call showstr ;呼叫顯示子程式
mov ax,4c00h
int 21h` ;返回dos
;*********************************************
showstr:
push dx
push cx
push es
push bx
push si
push di
call showstrinit
mov dh,cl ;由dx = dh + dl ; dh = 顏色 dl = 字元
showstringmain:
mov cx,0
mov cl,ds:[si]
jcxz showstrret
mov dl,cl
mov es:[di],dx
add di,2
inc si
jmp showstringmain
showstrinit:
mov al,160
mov bl,dh
mul bl
mov di,ax ;得到行數 , 最終用es:di指向顯示區域
mov al,2
mov bl,dl
mul bl
add di,ax
mov ax,0b800h
mov es,ax
ret
showstrret:
pop di
pop si
pop bx
pop es
pop cx
pop dx
ret
;*********************************************
codesg ends
end start
end
組合語言 AT T組合語言
這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...
b halt 彙編 arm常用幾個組合語言的程式
一。從一數到十 count equ 0x30003100 定義變數 count 的基位址 area example1,code,readonl y 宣告 段 example1 為唯讀entry 標識程式入口 code32宣告位 arm指令 start ldr r1,count 將0x30003100...
組合語言 彙編指令
功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...