汇编语言之实验一
实验一:查看CPU和内存,用机器指令和汇编指令编程
一。
任务:使用debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内存的变化。
机器码 汇编指令
b8 20 4e mov ax,4E20H
05 16 14 add ax,1416H
bb 00 20 mov bx,2000H
01 d8 add ax,bx
89 c3 mov bx,ax
01 d8 add ax,bx
b8 1a 00 mov ax,001AH
bb 26 00 mov bx,0026H
00 d8 add al,bl
00 dc add ah,bl
00 c7 add bh,al
b4 00 mov ah,0
00 d8 add al,bl
04 9c add al,9CH
使用a命令将指令写入内存
用T命令执行
使用e命令将指令写入内存
用T命令执行
二
任务:将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。
mov ax,1
add ax,ax
jmp 2000:0003
指令执行16次就会得到答案,若把第1,第2两次指令看成一组,以此类推。第一组得到2的一次方,第8组结束得到2的8次方
开始做这个实验时,我并不清楚如何利用汇编实现次方的原理。甚至不清楚,最终实现的值储存在什么地方。
于是按照书上操作,使用T命令实现,共16次。发现AX,,IP,变化,以及指令,位置变化。回想开始输入指令的意义,便理解如何整个实验如何实现的。
三
任务:
查看内存中内容
PC机主板上的ROM中写有一个生产日期,在内存FFF00H-FFFFFH的某几个单元中,请找到这个生产日期并试图修改它。
尝试修改,但是修改后再查看,依然没有变动。
四
任务:
向内存从B8100H开始的单元中填写数据,如:
-e B810:0000 01 01 02 02 03 03 04 04
首先可以知道内存地址掌控了颜色符号的显示地点,后面输入的内容应该控制颜色符号。由于输入内容两个一组的感觉,经过多次尝试,知道两个输入内容为一组控制符号,颜色,背景,及闪烁。
经过这四个实验,感觉A命令比E命令更为简洁且容易理解。理解指令执行的过程。生产日期是改动不了的,因为是在只读ROM,只能读取不可以改动。在显存上操作可以直接显示符号。
其中实验三四和基础知识有密切联系,更深刻理解基础知识。