[汇编语言]实验:应用更灵活的寻址方式来定位内存地址
生活随笔
收集整理的這篇文章主要介紹了
[汇编语言]实验:应用更灵活的寻址方式来定位内存地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實驗內容:
(1)將datasg段中每個單詞的頭一個字母改成大寫字母。
datasg段中的數據為:
(2)
將datasg段中每個單詞的字母改成大寫字母。
datasg段中的數據為:
ibm dec dos vax(3)
將datasg段中每個單詞的前四個字母改成大寫字母
datasg段中的數據為:
(1)
變量+常量的方式定位內存地址:
代碼如下:
assume cs:codesg,ds:datasgdatasg segmentdb '1. file 'db '2. edit 'db '3. search 'db '4. view ' db '5. options 'db '6. help ' datasg endscodesg segment start: mov ax,datasgmov ds,axmov bx,0mov cx,6s: mov al,[bx+3]and al,11011111bmov [bx+3],aladd bx,16loop smov ax,4c00hint 21h codesg ends end start(2)
用ds保存cx的值,以達到雙層循環的效果。
代碼如下:
assume cs:codesg,ds:datasgdatasg segmentdb 'ibm 'db 'dec 'db 'dos 'db 'vax ' datasg endscodesg segment start: mov ax,datasgmov ds,axmov bx,0mov cx,4s0: mov dx,cxmov si,0mov cx,3s: mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop s0add bx,16mov cx,dxloop s0mov ax,4c00hint 21hcodesg ends end start用內存保存cx
代碼如下:
assume cs:codesg,ds:datasgdatasg segmentdb 'ibm 'db 'dec 'db 'dos 'db 'vax 'db 0 ;定義一個字,用來存放cx datasg endscodesg segment start: mov ax,datasgmov ds,axmov bx,0mov cx,4s0: mov ds:[40h],cxmov si,0mov cx,3s: mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop s0add bx,16mov cx,ds:[40h]loop s0mov ax,4c00hint 21hcodesg ends end start最好的處理方式 - 棧:
代碼如下:
assume cs:codesg,ds:datasg,ss:stacksgdatasg segmentdb 'ibm 'db 'dec 'db 'dos 'db 'vax ' datasg endsstacksg segmentdw 0,0,0,0,0,0,0,0 stacksg endscodesg segment start: mov ax,stacksgmov ss,axmov sp,16mov ax,datasgmov ds,axmov bx,0mov cx,4s0: push cxmov si,0mov cx,3s: mov al,[bx+si]and al,11011111bmov [bx+si],alinc siloop sadd bx,16pop cxloop s0mov ax,4c00hint 21h codesg ends end start(3)
代碼如下:
總結
以上是生活随笔為你收集整理的[汇编语言]实验:应用更灵活的寻址方式来定位内存地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone能和安卓手机共用...iPh
- 下一篇: [汇编语言]实验:更灵活的寻址方式 -应