匯編語言 實驗4

實驗4

?

實驗內容1:綜合使用 loop,[bx],編寫完整匯編程序,實現向內存 b800:07b8 開始的連續 16 個 字單元重復填充字數據 0403H;修改0403H為0441H,再次運行

?

步驟1:在記事本中編寫好temp.asm文件

?

步驟2:進入dosbox環境進行編譯連接并運行,屏幕特定位置顯示16個紅色愛心

?

步驟3:修改0403H為0441H,運行后觀察結果

?

?

Tips:

進入debug環境逐步調試時,發現并沒有修改b87b8H內存單元中的值。對比直接運行并在沒有清屏條件下進入debug運行,和直接在debug環境中修改寄存器取值,發現可能的原因是:輸出在屏幕上的符號是動態的,即刻顯示當前位置的符號。如果顯示的位置下面本來沒有代碼,后面輸入的代碼會覆蓋這些符號;如果下面你本來就有代碼,會隨著代碼的輸入而不斷上移位置

?

?

?

?

實驗內容2:綜合使用 loop,[bx],編寫完整匯編源程序,實現向內存 0:200~0:23F 依次傳送數據 0~63(3FH)

?

用loop, [bx]實現:

1、步驟1:在記事本中編寫好temp2.asm文件

?

步驟2:進入dosbox環境進行編譯連接并運行

?

步驟3:進入debug環境,靈活使用 debug 的 t 命令、g 命令、p 命令調試,用 d 命令 查看 0:200~0:23F,確認是否將 0~63 傳送至此段內存區域

?

?

(用g命令調試)

?

?

(用t命令逐步調試、p命令一起執行循環的部分,結果和用g命令一樣)

2、稍作改動,同樣能實現

?

?

?

?

實驗內容3:實現將“mov ax,4c00h”之前的語句全部復制到從0:200開始的一段空間中

步驟1:在記事本中編寫好temp3.asm文件(填空的內容為1. CS 2.offset last-offset start

?

步驟2:進入dosbox環境進行編譯連接并運行

?

步驟3:靈活使用 debug 的 t 命令、g 命令、p 命令調試,用 d 命令查看 0:200 之后的若干字節,觀察是否將 mov ax, 4c00h 之前的指令復制到指定內存

?

?

?

?

?

?

實驗4——總結

收獲:本次實驗讓我熟悉了loop、[bx]的使用,弄懂了屏幕上輸出符號的位置與是否被覆蓋的問題,了解了怎么進行代碼的復制(怎么表示一段不知道大小的空間的大小),掌握了p命令的有一個功能——跳過循環的具體過程直接執行到循環結束。

?

問題:最后一個實驗為什么在復制完成以后還會多出一段數據呢?

?????? 實驗內容2的我嘗試了用loop、push做但是失敗了,查看內存單元發現并沒有修改原來的取值。那么到底應該如何實現呢?

轉載于:https://www.cnblogs.com/cjh-1023/p/9985973.html

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

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

相關文章

python --- 線程

1. 多任務 - 線程 參考 首先考慮一個沒有多任務的程序: import timedef sing():# 唱歌 5 秒鐘for i in range(5):print("-----菊花臺ing....-----")time.sleep(1)def dance():# 跳舞 5秒鐘for i in range(5):print("-----跳舞.....-----")time.sleep(5)d…

Python 鏈接匯總

MNIST手寫識別 轉載于:https://www.cnblogs.com/bycnboy/p/9095199.html

17種常用的JS正則表達式 非負浮點數 非負正數

<input typetext idSYS_PAGE_JumpPage nameSYS_PAGE_JumpPage size3 maxlength5 οnkeyupthis.valuethis.value.replace(/[^1-9]\D*$/,"") οndragenter"return false" οnpaste"return !clipboardData.getData(text).match(/\D/)"" sty…

python --- 使用conda配置pytorch

使用Conda配置PyTorch 1. 添加channels 下載地址 $ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ $ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ $ conda config --add channels htt…

LDAP第三天 MySQL+LDAP 安裝

https://www.easysoft.com/applications/openldap/back-sql-odbc.html OpenLDAP 使用 SQLServer 和 Oracle 數據庫。 https://www.cnblogs.com/bigbrotherer/p/7251372.html          CentOS7安裝OpenLDAPMySQLPHPLDAPadmin 1.安裝和設置數據庫 在CentOS7下&…

Myeclipse連接Mysql數據庫時報錯:Error while performing database login with the pro driver:unable...

driver template: Mysql connector/j&#xff08;下拉框進行選擇&#xff09; driver name: 任意填&#xff0c;最好是數據庫名稱&#xff0c;方便查找 connection URL: jdbc:mysql://localhost:3306/programmableweb User name: 用戶名 password: 密碼 Driver jars: 添加jar包…

Centos6.5靜態IP設置

1.創建新的虛擬機 2.打開終端&#xff0c;打開/etc/sysconfig/network-scripts/ifcfg-eth0文件 3.將BOOTPROTOstatic&#xff0c;原值為dhcp 4.添加 IPADDR192.168.43.125  #靜態IP GATEWAY192.168.43.1  #網關 NETMASK255.255.255.0  #子網掩碼 NETWORK192.168.43.0  …

matlab --- 圖像處理基礎

MATLAB圖像處理 1. 數字圖像處理 參考 數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,是一種將圖像信號數字化利用計算進行處理的過程。隨著計算機科學、電子學和光學的發展,數字圖像處理已經廣泛的應用到諸多領域之中。本小節主要介紹圖像的概念、分類和數字…

java 注解默認值

package com.zejian.annotationdemo;import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/** * Created by wuzejian on 2017/5/19. * 數據類型使用Demo */T…

[python、flask] - POST請求

1. 微信小程序POST傳遞數據給flask服務器 小程序端 // 提交POST數據 import { request } from "../../request/index.js"async handleDetectionPoints() {let params {url: "/detect_points",data: {"points": arr,"img_name": thi…

[vue]data數據屬性及ref獲取dom

data項的定義 this.$refs獲取dom 獲取不到數據 這樣中轉下才ok 小結: data里不能用this.$ref. 另外使用visjs時候 view-source:http://visjs.org/examples/network/basicUsage.html 加載不出東西,點了按鈕觸發才ok 小結: create里應該是從上到下執行的. 轉載于:https://www.cnb…

Linux命令基礎3

1. 計劃任務&#xff1a;分為”一次性“ 和”長期性“ 一次性任務是由atq服務/進程來實現的&#xff0c;計劃的管理操作是at命令&#xff1a; at <時間> : 安排一次性任務 atq 或at -l &#xff1a; 查看任務列表 at -c 序號&#xff1a; 預覽任務與設置環境 atrm 序號…

[異步、tensorflow] - 子線程操作tensor,主線程處理tensor

參考整體流程如下圖 代碼 import tensorflow as tf"""模擬: 子線程不停的取數據放入隊列中, 主線程從隊列中取數據執行包含: 作用域的命名、把程序的圖結構寫入事件、多線程 """# 模擬異步存入樣本. # 1、 定義一個隊列,長度為1000 with tf.va…

Element

官網&#xff1a;http://element-cn.eleme.io/#/zh-CN 轉載于:https://www.cnblogs.com/weibanggang/p/9995433.html

ubuntu18.04下安裝Anaconda及numpy、matplotlib

為了學習深度學習&#xff0c;我需要首先掌握利用python進行科學計算的知識&#xff0c;順便復習一下線性代數、微積分、概率論。當然&#xff0c;現在我要做的是安裝Anaconda。 1、官網下載&#xff0c;linux版本&#xff1a;https://www.anaconda.com/download 2、如果太慢&a…

[tensorflow] - csv文件讀取

參考 文件流程 csv讀取流程 函數的流程 import tensorflow as tf import os"""tensorflow中csv文件的讀取1、 先找到文件,構造一個列表2、 構造一個文件隊列3、 讀取(read)隊列內容csv: 讀取一行二進制文件: 指定一個樣本的bytes讀取圖片文件: 按一張一張…

課程模塊表結構

課程模塊 我們要開始寫課程模塊了~~課程模塊都有哪些功能呢~~ 我們的課程模塊&#xff0c;包括了免費課程以及專題課程兩個方向~~ 主要是課程的展示&#xff0c;點擊課程進入課程詳細頁面~~ 課程詳細頁面展示&#xff0c;課程的概述&#xff0c;課程的價格策略&#xff0c;課程…

vue中computed、metfods、watch的區別

一、computed和methods 我們可以將同一函數定義為一個 method 或者一個計算屬性。對于最終的結果&#xff0c;兩種方式確實是相同的。 不同的是computed計算屬性是基于它們的依賴進行緩存的。計算屬性computed只有在它的相關依賴發生改變時才會重新求值。這就意味著只要計算依賴…

OI生涯回憶錄(二)

&#xff08;二&#xff09;NOIP2016之后到HLOI2017 之后變得有點頹廢&#xff0c;因為有的地方難度上來了&#xff0c;碰見不會的題我就會放挺。又或者有時候題水&#xff0c;改完了就不思進取了。到了過年前那幾天連著考了幾天試&#xff0c;好像是長春那邊冬令營&#xff08…

[tensorflow、神經網絡] - 使用tf和mnist訓練一個識別手寫數字模型,并測試

參考 包含: 1.層級的計算、2.訓練的整體流程、3.tensorboard畫圖、4.保存/使用模型、5.總體代碼(含詳細注釋) 1. 層級的計算 如上圖,mnist手寫數字識別的訓練集提供的圖片是 28 * 28 * 1的手寫圖像,初始識別的時候,并不知道一次要訓練多少個數據,因此輸入的規模為 [None, 784].…