大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
实验4 [bx]和loop的使用
1
编程,向内存0:200~0:23f
依次传送数据0~63(3fh)
assume cs:code
code segment
mov ax,0
mov ds,ax;设置ds=0
mov bx,200h;设置从200h开始
mov cx,64;循环64次
mov al,0;传送的数据
s: mov [bx],al
inc bx
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
这个还是挺好写的…
2
编程,向内存0:200-0:23F
依次传送数据0~63(3FH),程序中只能使用9条指令,其中包括mov ax,4c00h
和int 21h
0000:0200-0000:023F
等同于0020:00-0002:3F
这里可以改一下,把bx和al合并一下
assume cs:code
code segment
mov ax,20h
mov ds,ax;设置ds=0
mov cx,64;循环64次
mov al,0;传送的数据
s: mov [al],al
inc al
loop s
mov ax,4c00h
int 21h
code ends
end
3
补全下面的程序,其功能是将mov ax,4c00
之前的指令复制到内存0:200处,补全程序,上机调试,跟踪运行结果
提示:
- 复制了什么?从哪里到哪里?
- 复制的是什么?有多少字节,你如何知道要复制的字节数量?
assume cs:code
code segment
mov ax,___
mov ds,ax;ds的地址为ax
mov ax,0020h
mov es,ax;es是20h
mov bx,0
mov cx,___
s: mov al,[bx];将ds;bx的值赋值给al
mov es:[bx],al;将al的值赋值给es[bx]
inc bx;bx++
loop s
mov ax,4c00h
int 21h
code ends
end
不好意思看了一下答案,第一个空那里应该填cs
,因为需要将mov ax,4c00
之前的指令复制到内存0:200处,那么程序开始就是cs:ip
,所以段地址是cs
第二个空填17
,可以用debug的u命令看出来,在mov ax,4c00h
前一共有17个字节
从04ae:0000
到04ae:0010
,一共17字节
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/227269.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...