汇编网首页登录博客注册
nono的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2008-04-10 18:24] 实验7

分析与思考:
通过如图表格,能够很清楚地了解table的结构,根据编程要求,先将data段的数据按结构复制到table段,然后做个除法,将商保存在指定位置。
(1)data段数据地址起止:年份data:0~data:53H,公司收入data:54H~data:A7H,员工人数data:A8H~data:CDH;

(2)从data段取数据填入table段:
用bx存放table每一行的偏移地址起始值,年份及公司收入是双字型数据,所以要用16位寄存器传送两次,用si存放年份及公司收入在data段中的偏移地址,员工人数为字型数据,用di存放员工人数在data段中的偏移地址,之所以要si和...
阅读全文 |   作者:sirius | 评论次数(2) | 浏览次数(820)

[2008-02-26 08:22] 检测点6.1

1、依次用0:0~0:15单元的内容改写程序中的数据 
assume cs:codesg 
codesg segment 
    dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h 
    mov ax,0 
    mov bx,0 
    mov cx,8 
  s:mov ax,[bx]   
  ;填空 mov cs:[bx],ax 
    add bx,2 
    loop s 

    mov ax,4c00h 
    int 21h 
codesg ends 
end  

2、依次...
阅读全文 |   作者:mess | 评论次数(2) | 浏览次数(940)

[2008-05-29 15:57] 汇编指令总结

一.数据传送指令

1.传送指令(move)
语句格式:mov opd,ops
功能:将源操作数ops,传送至目的地址opd中,即(ops)->opd
影响标志位:无

2.数据交换指令(exchange)
语句格式:xchg opd,ops
功能:将源地址与目的地址中的内容互换,(opd)->ops,(ops)->opd
影响标志位:无

3.查表转换指令(translate)
语句格式:xlat ops或xlat
功能:描述为([bx+al])->al,即将以(bx)为首址,(al)为位移量的字节存储单元中的内容传送至al中
影响标志位:无

4.传送偏移...
阅读全文 |   作者:sirius | 评论次数(4) | 浏览次数(2730)

[2007-10-18 10:19] 初学汇编易犯的N个错误

1.段的定义不完整:
定义一个段空间的格式为:
 segName segment
 ....
 segName ends
一般首行很少出错,但是,有时候段体内容多了,忘了段结束的 edns了。^_^
2.代码段的起始指令错误:
code segment
start:
mov ax ,1
s:
mov ax , 2
code ends
end s
在上面这段代码中,程序执行从标号s开始,因为在源代码的最后一行“end s”指明了代码开始的位置是s处,而不是start处。做过检测题的朋友们,应该还有印象吧。start只是个标号,没有之外的任何意思,反倒是“end”定义了...
阅读全文 |   作者:fishboy | 评论次数(8) | 浏览次数(2919)

[2008-03-30 16:03] 检测点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]
push [C]
push {E]

分析:此题后面用PUSH指令对20000H~2000FH单元进栈写入数据,是将这一段内存单元看作栈,所以用三条指令定义SS及SP。SS=2000H,而SP=000E+2=0010H

2.补全程序,将100...
阅读全文 |   作者:sirius | 评论次数(1) | 浏览次数(759)

[2008-03-28 09:37] 检测点3.1

1.分析思考:用D命令列出0:01F开始的内存单元数据如图

mov ax,1     
mov ds,ax    ;改变DS的值为0001
mov ax,[0000];[0000]单元物理地址是00010,所以AX=2662H
mov bx,[0001];同上,BX=E626H
mov ax,bx;        AX=E626H
mov ax,[0000];    AX=2662H
mov bx,[0002];    BX=D6E6H
add ax,bx;        AX=FD48H
add ax,[0004];    AX=2C14H (16位运算结果12C14,...
阅读全文 |   作者:sirius | 评论次数(2) | 浏览次数(798)

[2008-07-13 22:36] 第二章实验任务

(1)使用Debug,观察程序执行时相关寄存器变化

实验过程如下:
C:\DOCUME~1\XXX>debug
-a
0B12:0100 mov ax,4e20
0B12:0103 add ax,1416
0B12:0106 mov bx,2000
0B12:0109 add ax,bx
0B12:010B mov bx,ax
0B12:010D add ax,bx
0B12:010F mov ax,001a
0B12:0112 mov bx,0026
0B12:0115 add al,bl
0B12:0117 add ah,bl
0B12:0119 add b...
阅读全文 |   作者:duckgaga | 评论次数(3) | 浏览次数(1705)

[2008-06-26 22:52] 由检测点2.2引发的思考与实验

由检测点2.2引发的思考与实验

检测点2.2中的第一小题说到:给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为()到()?

这个小题的关键点在于,求出偏移的变化范围,再利用公式“段地址*16+偏移地址=物理地址”即可求得CPU的寻址范围。
关于这个小题的偏移变化范围,据我所知,好像有两种,一个是0~FFFFH,另一种则是0~15。那么两种答案到底谁对谁错呢?或者说,哪一个答案更加合理呢?为此,笔者设计了一个实验对此进行测试,具体情况如下:

一、设计思路:
两个答案中,一个是0~15,另一个是0~FFFFH,两个答案中都包含0~15这个部分,因此只要验证超...
阅读全文 |   作者:duckgaga | 评论次数(8) | 浏览次数(2562)

[2008-06-25 01:55] 第2章学习笔记

1.内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。


2.对一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员改变各种寄存器的内容来实现对CPU的控制。

3.8086CPU的所有寄存器都是16位的,可以存放两个字节。AX,BX,CX,DX四个寄存器通常用来存放一般性的数据,被称为通用寄存器。
要注意的是,在这四个寄存器当中,只有BX可以用来进行寻址,如mov ax,[bx+3]中,后面的bx就不能用其它三个通用寄存器代替。例如,mov di,[ax+3];mov di,[cx+3];mov d...
阅读全文 |   作者:duckgaga | 评论次数(2) | 浏览次数(1804)

[2008-06-26 22:49] 第二章检测点

检测点2.1

1)写出每条汇编指令执行后相关寄存器中的值。

mov ax,62627              ax=0f4a3h
mov ah,31h                ax=31a3h
mov al,23h                ax=3123h
add ax,ax                ax=6246h
mov bx,826ch                bx=826ch
mov cx,ax                cx=6246h
mov ax,bx                ax=826ch
add ax,bx                ax=04d8h
mov al,bh                ax=0482h
mov ah,bl                ax=6c82h
add ah,ah                ax=0d882h
add al,6                ax=0d888...
阅读全文 |   作者:duckgaga | 评论次数(1) | 浏览次数(1869)

[2008-06-21 11:27] 检测点1.1

1. 1个CPU的寻址能力为8KB,那么它的地址总线的宽度为(13)。
分析:CPU的寻址能力是地址总线的宽度决定的,它所能寻到的内存单元为(2^N)。故在此,8KB=(2^3)*(2^10)B=2^13B。别忘了1KB=1024B这个基本的知识点!

注意事项:
这里谈及寻址能力,就首先要理解好CPU寻址时,所寻到的并不是一个二进制位bit,而是一个存储单元Byte(简写为B),如果不太明白的,应该回去好好看看P6的那个图,好好理解!如果没有掌握这一点,就有可能把答案做成16,即(2^3)*(2^10)*(2^3)=2^16b,这样就错了!


2. 1KB的存储器有(1024...
阅读全文 |   作者:duckgaga | 评论次数(5) | 浏览次数(1973)

[2008-06-21 00:41] 第1章 学习笔记

1.CPU能直接识别并执行的指令称为机器指令。机器指令在形式上表现为二进制编码。而机器语言是机器指令的集合。

2.机器指令与CPU有着密切的关系。每一种微处理器(CPU),由于硬件设计和内部结构的不同,就需要用不同的电平脉冲(机器指令)来控制,使它工作。因此,通常CPU种类不同,对应的机器指令也就不同。

3.机器语言是用二进制编码的机器指令的集合及一组使用机器指令的规则。它是CPU能直接识别的唯一语言。只有用机器语言描述的程序,CPU才能直接执行。

4.汇编语言由汇编指令、伪指令及其它符号组成的。其中汇编指令是机器码的助记符,有相对应的机器码;而伪指令和其他符号没有对应的机器...
阅读全文 |   作者:duckgaga | 评论次数(9) | 浏览次数(2434)
页码数(1):  1