不通过寄存器确定数据的长度 + 案例
不通過寄存器確定數據的長度
在8086CPU指令中,可以處理byte和word兩種尺寸的數據。所以要在機器指令指明,指令進行的是字操作還是字節操作。
(1)通過寄存器名指明操作對象
指明進行字操作:
mov ax,1
mov bx,ds:[0] ;取一個字型數據
mov ds,ax
mov ds:[0],ax ;把一個字型數據放進去
inc ax
add ax,1000
指明進行字節操作:
mov al,1
mov al,bl ;位數一致
mov al,ds:[0] ;取一個字節型數據
mov ds:[0],al
inc al
add al,100
(2)在沒有寄存器名存在的情況下,用操作符X ptr指明內存數據的長度
用 word ptr指明指令訪問的內存單元是一個字單元
用byte ptr指明指令訪問的內存單元是一個字節單元
mov ds:[0],1 并不能判斷操作的是字型數據還是字節型數據
mov word prt ds:[0],1 ;這里的1會被翻譯為字數據的1,占16位
mov byte ptr ds:[0],1 ; 這里的1會被翻譯為字型數據,占8位
在沒有寄存器參與的內存單元訪問指令中 ,用word ptr或者byte ptr顯性地指明所要訪問的內存單元的長度是很有必要的!
尋址方式的綜合利用(案例):
關于DEC公司的一條記錄(1982年)如下:
公司名稱: DEC
總裁姓名:Ken Olsen
排名: 137
收入:40(40億美元)
著名產品:PDP(小型機)
到了1988年DEC公司的信息有了如下變化。
(1)Ken Olsen在富翁榜上的排名已升至38位;
(2) DEC的收入增加了70億美元;
(3)該公司的著名產品已變為VAX系列計算機
編程修改內存中的過時數據。
第一步一定要查看數據在內存中的分布,非常重要!!!
代碼如下:
總結
以上是生活随笔為你收集整理的不通过寄存器确定数据的长度 + 案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 序列化压缩成字符串_Pyt
- 下一篇: 实验七 寻址方式在结构化数据访问中的应用