組合語言showStr測試子程式

2021-08-01 08:49:50 字數 1947 閱讀 1358

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 一樣。功...