[2012-11-09 23:20] 实验二
1. (1)使用DEBUG,将上面的程序段写入内存,逐条执行,根据指令执行后的实际运行情况填空。
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax= 5beah
add ax,[2] ;ax= 00e0h
mov bx,[4] ;bx= 31F0H
add bx,[6] ;bx= 6122H
push ax ;sp= 00FEH ,修改的内存单元地址是 2200:00FE内容为 00e0H
push bx ;sp= 0...
mov ax,ffff
mov ds,ax
mov ax,2200
mov ss,ax
mov sp,0100
mov ax,[0] ;ax= 5beah
add ax,[2] ;ax= 00e0h
mov bx,[4] ;bx= 31F0H
add bx,[6] ;bx= 6122H
push ax ;sp= 00FEH ,修改的内存单元地址是 2200:00FE内容为 00e0H
push bx ;sp= 0...
阅读全文 |
评论次数(0) |
浏览次数(330) |
所属类型(汇编作业)
[2012-11-09 22:36] 检测点3.2
(1)补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序拷贝到20000H-2000FH中。
mov ax,1000H
mov ds,ax 初始化数据段
mov ax,2000H
mov ss,ax
mov sp,10h 初始化栈段
push [0]
push [2]
push [4]
push [6]
push [8]
push [A] ...
mov ax,1000H
mov ds,ax 初始化数据段
mov ax,2000H
mov ss,ax
mov sp,10h 初始化栈段
push [0]
push [2]
push [4]
push [6]
push [8]
push [A] ...
阅读全文 |
评论次数(0) |
浏览次数(309) |
所属类型(汇编作业)
[2012-11-09 22:31] 第三章简要(寄存器)
每个内存单元存储这的都是字节。
ds寄存器默认情况下是存放访问数据的段地址。
由于mov 段寄存器:数据这样写是错误的(8086cpu硬件设计问题),所以我们要设置段寄存器就需要一个寄存器进行中转。
mov ds,1000h(错误的)mov ax,1000h mov ds,ax(正确的)。
......................................................
默认情况下,只要问题不提到字单元时,都是字节单元。
使用mov指令时常用的几种格式如下:
mov 寄存器,寄存器。
mov 段寄存器,寄存器
mov 寄存器,数据
mov 内存单...
ds寄存器默认情况下是存放访问数据的段地址。
由于mov 段寄存器:数据这样写是错误的(8086cpu硬件设计问题),所以我们要设置段寄存器就需要一个寄存器进行中转。
mov ds,1000h(错误的)mov ax,1000h mov ds,ax(正确的)。
......................................................
默认情况下,只要问题不提到字单元时,都是字节单元。
使用mov指令时常用的几种格式如下:
mov 寄存器,寄存器。
mov 段寄存器,寄存器
mov 寄存器,数据
mov 内存单...
阅读全文 |
评论次数(0) |
浏览次数(324) |
所属类型(各章简要)
[2012-11-09 21:06] 检测点3.1
1.在debug中,用"d 0:0 1f"查看内存,结果如下。
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,ax=0,bx=0,写出每条汇编指令执行完相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] ax= 2662H
mov bx,[0001] bx= E626H
mov ax,bx ax= E626...
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,ax=0,bx=0,写出每条汇编指令执行完相关寄存器中的值。
mov ax,1
mov ds,ax
mov ax,[0000] ax= 2662H
mov bx,[0001] bx= E626H
mov ax,bx ax= E626...
阅读全文 |
评论次数(0) |
浏览次数(317) |
所属类型(汇编作业)
[2012-11-08 23:16] 实验一(2)
(2)将下面的3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
mov ax,1
add ax,ax
jmp 2000:0003
-a 2000:0
2000:0000 mov ax,1
2000:0003 add ax,ax
2000:0005 jmp 2000:0003
2000:0007
-r cs
CS 0C1C
:2000
-r ip
IP 0100
:0000
-r
AX=0000 BX=0000 CX=0000 DX=000...
mov ax,1
add ax,ax
jmp 2000:0003
-a 2000:0
2000:0000 mov ax,1
2000:0003 add ax,ax
2000:0005 jmp 2000:0003
2000:0007
-r cs
CS 0C1C
:2000
-r ip
IP 0100
:0000
-r
AX=0000 BX=0000 CX=0000 DX=000...
阅读全文 |
评论次数(0) |
浏览次数(329) |
所属类型(汇编作业)
[2012-11-08 22:59] 实验一
b8 20 4e mov ax,4E20H ax=4E20H
05 16 14 add ax,1416H ax=6236H
bb 00 20 mov BX,2000H bx=2000H
01 d8 add ax,bx ax=8236H
89 c3 mov bx,ax bx=8236H
01 d8 add ax,bx ax=046CH
b8 1a 00 mov ax,001AH ax=00...
05 16 14 add ax,1416H ax=6236H
bb 00 20 mov BX,2000H bx=2000H
01 d8 add ax,bx ax=8236H
89 c3 mov bx,ax bx=8236H
01 d8 add ax,bx ax=046CH
b8 1a 00 mov ax,001AH ax=00...
阅读全文 |
评论次数(0) |
浏览次数(322) |
所属类型(汇编作业)
[2012-11-08 22:37] 检测点2.3
下面的3条指令执行后,cpu几次修改ip? 都是在什么时候?最后ip中的值是多少?
mov ax,bx 读取后(到指令缓冲器)第一次修改
sub ax,ax 读取后 第二次修改
jmp ax 读取后 第三次修改 修改ip中值 第四次修改
最后ip值=0000h 因为执行到最后ax中的值是0h。...
mov ax,bx 读取后(到指令缓冲器)第一次修改
sub ax,ax 读取后 第二次修改
jmp ax 读取后 第三次修改 修改ip中值 第四次修改
最后ip值=0000h 因为执行到最后ax中的值是0h。...
阅读全文 |
评论次数(0) |
浏览次数(322) |
所属类型(汇编作业)
[2012-11-08 22:27] 第二章重点
1. cpu(按内部来说)可分为:
运算器:进行信息处理
控制器:控制各个器件之间工作
寄存器:进行信息储存
8086提供两种储存信息的尺寸即字(word)和字节(byte)
......................................................
2. 8086cpu给出物理地址的方式:sa(段)*16+ea(偏移)
段的阐述:将若干个连续的内存地址定义为一个段(不能>64kb)
......................................................
3.cs:ip任意时刻指向的都是cpu当前要执行的...
运算器:进行信息处理
控制器:控制各个器件之间工作
寄存器:进行信息储存
8086提供两种储存信息的尺寸即字(word)和字节(byte)
......................................................
2. 8086cpu给出物理地址的方式:sa(段)*16+ea(偏移)
段的阐述:将若干个连续的内存地址定义为一个段(不能>64kb)
......................................................
3.cs:ip任意时刻指向的都是cpu当前要执行的...
阅读全文 |
评论次数(0) |
浏览次数(294) |
所属类型(第二章总结)
[2012-11-08 22:06] 第二章简要
cpu内部是由哪几大部件构成的???
1.运算器:进行信息数据的处理。
2.寄存器:存储着计算机要使用的信息和指令。
3.控制器:控制着各个器件进行工作(内部总线把它们连接在一起,在各器件之间进行数据的传输)。
......................................................
8086cpu有多少个寄存器???
14个,分别是AX,BX,DX,CX,DS,SS,CS,ES,IP,SP,BP,SI,DI,PSW(不知道什么东东??知道的可以说下。)
AX(累加寄存器),BX(基址寄存器),DX(数据寄存器),CX(计数寄存器)这四个称...
1.运算器:进行信息数据的处理。
2.寄存器:存储着计算机要使用的信息和指令。
3.控制器:控制着各个器件进行工作(内部总线把它们连接在一起,在各器件之间进行数据的传输)。
......................................................
8086cpu有多少个寄存器???
14个,分别是AX,BX,DX,CX,DS,SS,CS,ES,IP,SP,BP,SI,DI,PSW(不知道什么东东??知道的可以说下。)
AX(累加寄存器),BX(基址寄存器),DX(数据寄存器),CX(计数寄存器)这四个称...
阅读全文 |
评论次数(0) |
浏览次数(329) |
所属类型(第二章总结)
[2012-11-08 21:31] 检测点2.2
1. 给定段地址为0001h,仅通过变化偏移地址寻址,cpu的寻址范围为
(10h)到(1000fh)。
思路:最小:sa*16+ea=00010h+0=10h
最大:sa*16+ea=00010h+ffff=1000fh
因为8086的寻址能力只有64kb(16位 ffff大小),最小为0,最大为ffff
.....................................................
2. 有一数据存放在内存20000h单元中,现给定段地址为sa,若想用偏移地址寻到此单元,则sa应满足的条件是:最小为(1001h)。最大为(200...
(10h)到(1000fh)。
思路:最小:sa*16+ea=00010h+0=10h
最大:sa*16+ea=00010h+ffff=1000fh
因为8086的寻址能力只有64kb(16位 ffff大小),最小为0,最大为ffff
.....................................................
2. 有一数据存放在内存20000h单元中,现给定段地址为sa,若想用偏移地址寻到此单元,则sa应满足的条件是:最小为(1001h)。最大为(200...
阅读全文 |
评论次数(0) |
浏览次数(310) |
所属类型(汇编作业)
『 查看更多文章 』