第三次实验
mov cx, 5//将Nuist变为大写,循环5次
mov si, 0
mov di, 0f00h
s: mov al, [si]
and al, 0dfh//将小写变为大写
mov es:[di], al
mov al, [5+si]//将大写的放入es中
mov es:[di+1], al//在字母后放入2
inc si
add di, 2
loop s
15到25行内容如上所示
debug如上图所示
![](https://img2020.cnblogs.com/blog/2176105/202012/2176105-20201218045857075-1162027847.png)
这里我将db 5 dup(2)改为db 5 dup(3)可见NUIST从绿色变为如图所示的颜色,由此可知字面意思的插入数字实际是更改了字母颜色
第二项实验
assume ds:data,cs:code data segment db 23,0,50,0,66,0,71,0,35 data ends code segment start: mov ax,data mov ds,ax mov bx,0 mov cx,5 mov dh,10 s:mov ax,[bx] div dh add al,30h mov [bx],al inc bx add ah,30h mov [bx],ah inc bx loop s mov cx,10 mov bx,0 s0:mov ah,2 mov dl,[bx] int 21h inc bx loop s0 mov ah,4ch int 21h code ends end start
如上所述为我的代码
输出结果图
实验三
![](https://img2020.cnblogs.com/blog/2176105/202012/2176105-20201218071315450-1291271560.png)
由上图可知:CPU执行程序,程序返回前,cs=076CH,ss=076BH,ds= 076AH。
设程序加载后,code段的段地址为X,则data段的段地址为 X-2,stack段的段地址为X-1 。
实验四
![](https://img2020.cnblogs.com/blog/2176105/202012/2176105-20201218071651951-1334484820.png)
如果段中的数据占N个字节,则程序加载后,该段实际占有的空间为(N/16+1)*1
实验5
反汇编调试截图,即:在debug中,执行到程序返回前的调试截图。
CPU执行程序,程序返回前,cs=076AH,ss=076EH,ds=076DH。
设程序加载后,code段的段地址为X,则data段的段地址为X+3,stack段的段地址为X+4。
实验6
只有任务5可以执行,任务3和任务4开头是数据会被当成指令读,而任务5会先执行代码段,所以不会出问题
实验7
反汇编
运行至程序返回前,查看逻辑段c的数据
实验8
实验总结
程序设计时总下意识用寄存器,但寄存器数量很少且各有作用,需要熟练运用内存存储
posted on 2020-12-18 07:29 centurion829 阅读(64) 评论(2) 编辑 收藏 举报