电商网站 app,微网站如何做,网络营销自学网站,凡科模板题目1 编程#xff1a;向内存0:200 - 0:23F 中存放数据 0 - 3FH ; 向内存 0:200 ~ 0:23f 写入数据0~3fH【字节型数据】
assume cs:code
code segmentstart:mov ax,0mov ds,axmov bx,0200H ; 偏移地址mov al,0 ; 数据mov cx,03fH1H ; 0 ~ 3FH 共 (3F 1)Hs:mov [bx],alinc b…题目1 编程向内存0:200 - 0:23F 中存放数据 0 - 3FH ; 向内存 0:200 ~ 0:23f 写入数据0~3fH【字节型数据】
assume cs:code
code segmentstart:mov ax,0mov ds,axmov bx,0200H ; 偏移地址mov al,0 ; 数据mov cx,03fH1H ; 0 ~ 3FH 共 (3F 1)Hs:mov [bx],alinc bxinc alloop smov ax,04c00hint 021h
code ends
end start注意要点
写入的是字节型数据注意循环次数
题目2 优化题目一代码只能使用9条指令包括最后两条返回指令 也就是说汇编指令只能有7条。
优化思路必要的设置ds的2条、loop s1条和inc bx1条不可能减少。
那就只能寄存器共用结果如下
; 向内存 0:200 ~ 0:23f 写入数据0~3fH【字节型数据】
assume cs:code
code segmentstart:mov ax,0mov ds,axmov bx,0H ; 偏移地址mov cx,03fH1H ; 0 ~ 3FH 共 (3F 1)Hs:mov [bx 200H],blinc bxloop smov ax,04c00hint 021h
code ends
end start思路来源 所谓的基址寻址[bx 常量]其实这个名字没什么用只需要知道EA的来源可以是xxx的组合就好了这些名字徒增记忆负担。
题目3 将代码段在mov ax,04c00h之前的数据放到其他内存空间中起点是0:200 assume cs:code
code segmentstart:mov ax,codemov ds,axmov ax,0mov ss,axmov bx,0sub cx,5 ; 减去返回指令的值s:mov dl,[bx] ; “[]”中可以是bx,bp,si,di,常数【不能是ax】mov ss:[bx 200H],dl ; 不能2个操作数都是内存单元inc bxloop smov ax,04c00hint 021h
code ends
end startx86指令集中操作数中【至多有一个】内存单元存储器寻址是bx,bp,si,di,常数这几种的组合段寄存器赋值的标准写法
mov ax,datasg
mov ds,axxor ss,ssxor也是运算符凡是运算段寄存器都不能参与加载之初cx的值就是汇编指令对应的机器数的大小对于这道题是可以的但是如果还有其他的段那么这道题其实没有什么意义只不过王爽老师是故意知识屏蔽的对初学者友好