匯編 --- 初體驗

假設內存10000H中的值為23,10001H中的值為11,10002H中的值為22,10003H的值為11
在debug中執行以下代碼

mov ax,1000H
mov ds,ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]
  • 分析:8086CPU中由于段地址寄存器,無法直接賦值,因此需要先將值賦給通用寄存器然后再給ds賦值代碼如下
mov ax,1000H
mov ds,ax
mov ax,23
mov [0],ax
mov ax,11
mov [1],ax
mov ax,22
mov [2],ax
mov ax,11
mov [3],ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]

在這里插入圖片描述
第一行回不去了… 代碼地址是 0482:0139

-r 查看當前的cs:ip
在這里插入圖片描述
當前執行的匯編代碼是 mov ax,1000
cs = 0482, ip = 0100
我們需要改變ip 來執行上面的代碼
-r ip
0139
在這里插入圖片描述
此時開始執行我們寫的代碼段
-t 按段執行代碼
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

下面提供正確的解法

  • 上面是第一次用寫的…
  • 下面的是正解 - -
  • -d查看內存中的數據
-d 1000:0

在這里插入圖片描述
可以看到,此時內存1000:0000 到 1000:0003的值都為0

  • 下面使用-e 寫入數據
-e 1000:0 23 11 22 66
  • 再次使用-d查看
-d 1000:0

在這里插入圖片描述

  • 內存中的值已經寫入完畢,下面執行匯編代碼
  • -a是以匯編指令的形式,再內存中寫入一段代碼
-a
mov ax,1000
mov ds,ax
mov ax,[0]
mov bx,[2]
mov cx,[1]
add bx,[1]
add cx,[2]

在這里插入圖片描述

  • -r查看下一條cpu執行的指令
  • -r ip改變指令偏移
-r 
-r ip
0100

在這里插入圖片描述
可以看到,此時cpu正好執行我們的程序段,因此不需要更改cs和ip直接-t 即可執行

  • 后面一直-t執行即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250658.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP數組的排序函數

PHP數組的排序函數 介紹: sort() - 以升序對數組排序rsort() - 以降序對數組排序asort() - 根據值,以升序對關聯數組進行排序ksort() - 根據鍵,以升序對關聯數組進行排序arsort() - 根據值,以降序對關聯數組進行排序krsort() - …

763 Hex Conversion

原題網址&#xff1a;http://www.lintcode.com/zh-cn/problem/hex-conversion/ Given a decimal number n and an integer k, Convert decimal number n to base-k. 注意事項 1.0<n<2^31-1, 2<k<162.Each letter over 9 is indicated in uppercase 您在真實的面試中…

PHP Class中public,private,protected,static的區別

PHP Class中public,private,protected,static的區別 public&#xff1a;權限是最大的&#xff0c;可以內部調用&#xff0c;實例調用&#xff0c;可以被繼承。protected&#xff1a;受保護類型&#xff0c;用于本類和繼承類調用&#xff0c;實例化調用報錯。private&#xff1…

匯編 --- EXE文件 的程序的加載過程

1.asm 使用編譯工具寫了一個求2的3次方的程序 assume cs:abcabc segmentmov ax,2add ax,axadd ax,axmov ax, 4c00Hint 21H abc endsend編譯&連接 得到可執行文件1.exe 使用debug調試1.exe 進入調試模式 debug 1.exe查看數據段地址和代碼段地址 -r 描述: 可以看到此時…

淺談Floyd的三種用法 By cellur925

Floyd大家可能第一時間想到的是他求多源最短路的n算法。其實它還有另外兩種算法的嘛qwq。寫一發總結好了qwq。 一、多源最短路 放段代碼跑&#xff0c;注意枚舉順序&#xff0c;用鄰接矩陣存圖。本質是一種動規。 復雜度O(n)。 1 for(int k1;k<n;k) 2 for(int i1;i<n…

js獲取viewbag

后臺代碼&#xff1a; List<WMSRptJHJY> wpjh WMSRptJHJYManage.GetModelList("");   ViewBag.WPJH Newtonsoft.Json.JsonConvert.SerializeObject(wpjh); 前臺代碼&#xff1a; var aa Html.Raw(ViewBag.WPJH);   var PWJH eval("(" aa &…

匯編 --- 棧結構的妙用

在js中雙重循環,代碼如下: for(let i 0; i < l1;i){for(let j0; j< l2;j){// todo...} }以上代碼在匯編中是如何實現的呢. 匯編中用cx和loop來代表一次循環 mov cx, 4 s: mov ax,1loop s但是如果使用如下方法實現雙重循環將會出錯 assume cs:codesg, ds:datasgdatasg …

PHP 安全編程建議

PHP 安全編程建議 簡介 要提供互聯網服務&#xff0c;當你在開發代碼的時候必須時刻保持安全意識。可能大部分 PHP 腳本都對安全問題都不在意&#xff0c;這很大程度上是因為有大量的無經驗程序員在使用這門語言。但是&#xff0c;沒有理由讓你因為對你的代碼的不確定性而導致不…

day2-列表、元組、字典、字符串

1.列表&#xff08;list&#xff09; names[悟空,艾瑪,克林,龜仙人,天津飯,餃子,烏龜] print(names)---》列表&#xff0c;然后打印。 names[悟空,艾瑪,克林,龜仙人,天津飯,餃子,烏龜]# list section section1names[0] #下標從0開始 #print(section1) #結果為悟空seciton2names…

開漏輸出、推挽輸出的區別

推挽輸出:可以輸出高,低電平,連接數字器件。 輸出 0 時&#xff0c;N-MOS 導通&#xff0c;P-MOS 高阻&#xff0c;輸出0。 輸出 1 時&#xff0c;N-MOS 高阻&#xff0c;P-MOS 導通&#xff0c;輸出1&#xff08;不需要外部上拉電路&#xff09;。 開漏輸出:輸出端相當于三極管…

羅馬數字

古羅馬帝國開創了輝煌的人類文明&#xff0c;但他們的數字表示法的確有些繁瑣&#xff0c;尤其在表示大數的時候&#xff0c;現在看起來簡直不能忍受&#xff0c;所以在現代很少使用了。之所以這樣&#xff0c;不是因為發明表示法的人的智力的問題&#xff0c;而是因為一個宗教…

匯編 --- 從磁盤(扇區2到18)上讀取數據到內存中

下面代碼讀取柱面:0,磁頭:0,扇區從2到18的數據到內存 0x8200~0xa3ff處 需要明白以下幾點: 給定柱面,磁頭,一個扇形區域是512字節,對應的物理可以理解為512個燈泡組(一個燈泡組有8個小燈泡)確定讀取到內存中的位置 為什么是0x8200:因為0x8000~0x81ff這512個字節要留給啟動區.為…

那些值得思考的PHP問題

那些值得思考的PHP問題 1、關于弱類型 函數strpos是返回字符串str2在str1的位置&#xff0c;沒有找到則返回false&#xff0c;然而如果在實際應用上返回的位置是0&#xff0c;在if語句中0也被當作false&#xff0c;所以我們需要對false做類型判斷&#xff0c; $str1 yabadaba…

Lvs Tun隧道模式配置

######## TUN是IP Tunneling &#xff0c;IP隧道的簡稱&#xff0c;它將調度器收到的IP數據包封裝在一個新的IP數據包中&#xff0c;轉交給應用服務器&#xff0c;然后實際服務器的返回數據會直接返回給用戶。 工作原理&#xff1a; 用戶請求負載均衡服務器&#xff0c;當IP數…

mysql-常用sql

記錄下工作中常用的sql 刪除重復數據 delete from student where id not in (select min(id) from student group by name); -- 該語句在mysql下會報錯&#xff0c; -- 執行報錯&#xff1a;1093 - You cant specify target table student for update in FROM clause -- 原因是…

優雅的使用Laravel之phpstorm配置

優雅的使用Laravel之phpstorm配置 先打開一個Laravel 項目&#xff0c;然后在project tool 窗口選擇根節點、然后右鍵->Composer | Init composer 。 如果你的電腦里沒有composer.phar&#xff0c;可以點擊鏈接來下載。然后點擊項目 composer->add denpendency.. 搜索ba…

算法 --- 求兩個集合的并集

const unionL (l1, l2)>{for(let i0; i <l1.length; i){if(l2.indexOf(l1[i]) -1){l2.push(l1[i])}}return l2 }let l1 [1,2,3,4]; let l2 [1,2,5]; console.log(unionL(l1,l2)); //[1, 2, 5, 3, 4]

java實驗四——找鞍點

package hello;public class 實驗四 {public static void main(String[] args) {// TODO Auto-generated method stubint[][] a {{9,8,6},{2,3,1},{8,5,2}};System.out.println("二維數組為&#xff1a;");for(int i0;i<a.length;i){for(int j0;j<a[i].length;…

BZOJ 4551樹題解

好吧&#xff0c;洛谷的數據比較水暴力就可以過。。。。&#xff08;而且跑到飛快&#xff09; 不過&#xff08;BZ水不過去&#xff09;還是講講正規的做法。 其實一眼可以看出可以樹剖&#xff0c;但是&#xff0c;碼起來有點麻煩。 其實有一種更簡單的離線做法。 我們很容易…

es6 --- 使用Symbol保護私有變量

定義一個人物類 假設其屬性有姓名和性別我們希望,性別在聲明后就固定不變 傳統方法 var Person (function(){var _gender ;function P(name, gender){this.name name;_gender gender;}P.prototype.getGender function(){return _gender;}return P; })();var p1 new Pe…