本实验书中已经有源码(158页),稍微改动一下即可。本题中值得学习的地方就是用双重循环遍历二位数组,这在C语言中很简单,但是在汇编中要注意cx的在内外层循环之间的切换情况。
assume cs:codesg, ds:datasg, ss:stacksgdatasg segment;0123456789abcdef db '1. display 'db '2. brows 'db '3. replace 'db '4. modify '
datasg endsstacksg segmentdw 8 dup(0)
stacksg endscodesg segment
start: mov ax, stacksgmov ss, axmov sp, 16mov ax, datasgmov ds, axmov bx, 3mov cx, 4s0: push cxmov si, 0mov cx, 4s: mov al, [bx+si]and al, 11011111bmov [bx+si], alinc siloop sadd bx, 16pop cxloop s0mov ax, 4c00hint 21hcodesg ends
end start
实验结果:
感悟:学东西不要求快,刻意求快就没有了兴趣,没有趣味,没有了感觉,剩下的只是记忆;没有了感觉就没有了抽象,也就学不深,学不远。不焦急,不放弃,加油。