王爽汇编第九章学习笔记
在這里0-1=ffff
有關(guān)于根據(jù)位移進(jìn)行轉(zhuǎn)移的意義:跳轉(zhuǎn)指令與浮動(dòng)裝配(匯編相關(guān)),匯編語(yǔ)言交流,技術(shù)交流區(qū),魚C論壇 - Powered by Discuz!
實(shí)驗(yàn)八:重點(diǎn)關(guān)注jmp short s1是表達(dá)ip的值本位-8個(gè)字節(jié),因?yàn)樗皇情L(zhǎng)轉(zhuǎn)移,而是短轉(zhuǎn)移,是直接根據(jù)位移算的,它的機(jī)器碼里沒有要跳轉(zhuǎn)到的目標(biāo)位置的信息
有關(guān)于nasm用法的意外收獲:http://www.cppblog.com/myjfm/archive/2011/11/05/159647.asp
有關(guān)于實(shí)驗(yàn)9,先給代碼
?DATAS SEGMENTdb 'welcome to masm!' ?db 2h,23h,71hDATAS ENDSstack segmentdw 10 dup(0)stack ends?CODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:stackSTART:mov ax,datasmov ds,axmov ax,0b800hmov es,axmov si,40hmov di,0mov bp,0780hmov cx,3s1:push cxmov cx,10hs:mov al,byte ptr ds:[bx]mov ah,byte ptr ds:[di+10h]mov es:[si+bp],axadd si,2inc bxloop smov bx,0inc diadd bp,0a0hmov si,40hpop cxloop s1MOV AH,4CHINT 21HCODES ENDSEND START寫這道實(shí)驗(yàn)我還是踩過(guò)挺多坑的,現(xiàn)在就列一下:
棧不用你進(jìn)行初始化,在上面設(shè)棧了,程序會(huì)自動(dòng)幫你接過(guò)去,不然你的程序可能報(bào)錯(cuò)
直接數(shù)類似于abh這樣的,只有這么寫0abh才是合法,其他會(huì)報(bào)錯(cuò)
你不能直接用si進(jìn)行字節(jié)的復(fù)制,我試了下,直接報(bào)錯(cuò)
一般這種處理一個(gè)字節(jié),可以分解ax為al,ah,然后復(fù)制到目標(biāo)的內(nèi)存單元,注意高位配高位,低位配低位
字符串可以通過(guò)db ‘jaskdjak’這樣在data數(shù)據(jù)段中直接設(shè)置
因?yàn)槲以赿ata段里面設(shè)置兩個(gè),又因?yàn)檫@兩個(gè)偏移方式有點(diǎn)不太一樣,所以不能用相同的寄存器進(jìn)行同加操作,這里是我原本第24行di是bi
總結(jié)
以上是生活随笔為你收集整理的王爽汇编第九章学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1018 锤子剪刀布 (20 分)
- 下一篇: 1019 数字黑洞 (20 分)(c语言