x86彙編 (七)高仿for迴圈巢狀列印字串

2021-07-11 02:05:24 字數 1301 閱讀 6316

;看書看到乙個題目:編寫乙個子函式,列印8行3列的字串,資料域已經給出

;0 0寫了幾個小時的成果- - (╯-_-)╯╧╧ 暈死

assume cs:codesg,ds:datasg,ss:stack

datasg segment

db 'welcome to masm! ',0

datasg ends

stack segment

dw 64 dup(0)

stack ends

codesg segment

start:

mov dh,8 ;行號

mov dl,3 ;列數

mov cl,2 ;綠色

mov ax,datasg

mov ds,ax

mov si,0 ;ds:si指向字串的首位址

mov ax,stack

mov ss,ax

mov sp,128

call show_str

mov ax,4c00h

int 21h

;列印dh行dl列的字串

show_str:

mov ax,0b800h

mov es,ax ;es定位視訊記憶體

mov bx,0 ;真正列印的位置

mov ah,cl ;低位存放顏色

;控制行迴圈

mov cx,0

mov cl,dh

row:push cx

push bx

;控制列迴圈

mov cx,0

mov cl,dl

col:push cx

push si

call print ;列印字串

pop si

pop cx

loop col ;迴圈列印一行

pop bx

add bx,160 ;定位到下一行列印

pop cx

loop row ;迴圈列印行

ret ;返回

;列印字串

print:

mov cl,[si]

mov ch,0

jcxz ok ;判斷當前字元是否到0,到了就停止這個列印

mov al,[si]

mov es:[bx],ax ;寫入視訊記憶體顯示

inc si

add bx,2

jmp short print ;如果沒列印完,就繼續往後列印

ok:

retcodesg ends

end start

170824 彙編 x86基礎

a.1625 5 王子昂 總結 2017年8月24日 連續第325天總結 b.逆向知識 資料移動分為5種方式 立即數到暫存器 立即數到記憶體 暫存器到暫存器 暫存器到記憶體或記憶體到暫存器 記憶體到記憶體 前4種是所有現代體系都支援的,第五種是x86獨有的,可以通過inc add來直接操作記憶體 另...

X86彙編指令詳解

x86彙編基本分為七大體系 分別是 1 資料傳送指令 2 算術運算指令 3 邏輯運算指令 4 串操作指令 5 控制轉移指令 6 處理器控制指令 7 保護方式指令 先介紹資料傳送指令集 1 資料傳送指令 1.mov 格式 mov destination,source 功能 將s ource中的資料傳送...

x86彙編學習筆記

debug 是dos,windows都提供的實模式 8086 方式 程式的除錯工具.windows下使用dosbox模擬dos環境,掛載所在目錄後開啟debug.exe r指令 顯示r ax 0000 bx 0000 cx 0000 dx 0000 sp 00fd bp 0000 si 0000 d...